<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>fdbck lps</title><description>a weblog about systems thinking</description><link>https://danielspracklin.com/</link><item><title>On not writing things down</title><link>https://danielspracklin.com/posts/on-not-writing-things-down/</link><guid isPermaLink="true">https://danielspracklin.com/posts/on-not-writing-things-down/</guid><description>wherein I attempt not to contradict myself</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I previously wrote&amp;lt;/span&amp;gt; about how &lt;a href=&quot;https://danielspracklin.com/posts/pilot-licenses/&quot;&gt;pilot projects become contronyms&lt;/a&gt; as soon as they&apos;re written down. And in my last post, I described how &lt;a href=&quot;https://danielspracklin.com/posts/optimal-amount-of-framework-wrongness/#user-content-fnref-whence&quot;&gt;non-optimal business strategy tends to persist&lt;/a&gt; in many conditions where it is profitable to be vague. These ideas are linked in another way: both are instances of capture, where the way we fix our knowledge destroys what we know, and the parts we can&apos;t ever fix in the first place.&lt;/p&gt;
&lt;h2&gt;Writing is hard&lt;/h2&gt;
&lt;p&gt;I often struggle to write big things down -- I&apos;ve &lt;a href=&quot;https://danielspracklin.com/posts/why-my-knowledge-base-failed/&quot;&gt;talked about this before&lt;/a&gt; in the context of personal knowledge management. But I also tend to believe that most thinking begins with writing. How can we reconcile these ideas?&lt;/p&gt;
&lt;p&gt;The operative word here is &quot;most&quot;, because at its core the writing isn&apos;t actually the thinking. It&apos;s rather that writing forces your thinking to deepen, which in turn sets off the core reinforcing feedback loop by which your writing improves. So both are cause and effect at once, and writing becomes more like a threshing floor for your ideas.&lt;/p&gt;
&lt;p&gt;But writing also just seems asymmetrically hard compared to thinking! The ease with which wisps of really great ideas bubble up can make you feel like a terrible communicator when they&apos;re relatively so much harder to pin down, or maybe just bad at deciding what makes an idea good in the first place. It&apos;s sort of like when your incredible thought sounds stupid out loud.:marginnote[Not &lt;em&gt;quite&lt;/em&gt; the same -- talk is cheap, as they say -- but the notion that supposedly great ideas go extinct upon medium shift is transferable.] So even if you believe in the reflexive relationship between thinking and writing, there&apos;s a certain rarified appeal to the view that writing is somehow more precise or more rigorous, as only the good ideas will have survived. Hence the &quot;ideas guy&quot;, and to a lesser extent the ivory tower.&lt;/p&gt;
&lt;p&gt;Of course we can effectively critique this kind of logocentrist take along deconstructionist lines, but I&apos;d like to suggest a different reason why writing is often so ineffective, and maybe why you shouldn&apos;t &lt;em&gt;exclusively&lt;/em&gt; write things down. To do so, we&apos;ll have to sift through the candidate arguments and diagnose their underlying tensions.&lt;/p&gt;
&lt;h2&gt;Three problems with writing&lt;/h2&gt;
&lt;p&gt;The first reason why writing might be less effective than thinking is due to market-based reflexivity. Writing a technique down often negates the alpha it had previously allowed you to extract. Arbitrage disappears when everyone knows about it! It&apos;s a bit like that Yogi Berra joke, or how your favourite hidden-gem restaurant or coffee shop or whatever relies on &lt;em&gt;not&lt;/em&gt; being known to the masses. This is just the economic analogue of the contronym problem, where a pilot becomes a not-pilot once the name is attached. And that&apos;s not so surprising, because it turns out that many things evaporate when crystallized, or even upon exposure to broader cultural awareness, like prototypes and niches and inside jokes. There are even things that everyone knows but that you can&apos;t admit to knowing!&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; It&apos;s not hard to think of things that don&apos;t survive transcription.&lt;/p&gt;
&lt;p&gt;The second reason comes from applying the &lt;em&gt;Seeing Like a State&lt;/em&gt; legibility argument. For example, your last name is supposed to distinguish you from others, but its existence arguably makes you &lt;em&gt;less&lt;/em&gt; of an individual in some sense, as you cease to be &quot;the person who lives down the street and is pretty good at piano&quot; and instead become &quot;Daniel &lt;em&gt;Spracklin&lt;/em&gt;&quot;, or perhaps even just a maximally identifying yet technically pseudonymous entry in a database. Insofar as last names exist to be written,&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; it&apos;s a reason to question the motives behind the writing instinct.&lt;/p&gt;
&lt;p&gt;A third problem with writing is that, no matter the effort you expend to distill your thoughts, the work product often comes out vague and unprincipled, and especially so in the strategy domain. This accelerates the &quot;suboptimal amount of bad strategy&quot; problem I wrote about last time, and my dissatisfaction  with the genre stems from a question of reproducibility: if your strategy is so good, why isn&apos;t everyone reaping the rewards?:marginnote[How could anyone fail competitively when adherence to the CEO-cum-NYT-bestseller-&lt;em&gt;du-jour&lt;/em&gt;&apos;s views on leadership styles costs $25?] Well, maybe the value was never in the written word. As with &lt;a href=&quot;https://en.wikipedia.org/wiki/Tacit_knowledge&quot;&gt;tacit knowledge&lt;/a&gt;, some things are harder to communicate than they are to know or to learn. And in fact as Friedrich Hayek suggests in &quot;The Use of Knowledge in Society&quot;, the kind of knowledge we care about here&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;... never exists in concentrated or integrated form, but solely as the dispersed bits of incomplete and frequently contradictory knowledge which all the separate individuals possess.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hayek&apos;s argument -- that much of the real knowledge in life is quietly bound up in the minds of all the &lt;em&gt;other&lt;/em&gt; people who also live down the street -- isn&apos;t merely that the central planner just needs to dig harder to unearth information. That perverse result already follows directly from the legibility problem. Rather, the knowledge Hayek writes about is fundamentally impossible to communicate or to &quot;enter into statistics&quot; in the kind of &lt;em&gt;data-driven&lt;/em&gt;:marginnote[An epithet that deserves its own post.] text that dominates strategy writing, or project charters, or what have you.&lt;/p&gt;
&lt;p&gt;These challenges to the supremacy of writing are in constant tension. The existence of your arbitrage strategy doesn&apos;t somehow prevent you from revealing it, it just makes disclosure dubious. The legibility argument doesn&apos;t magically stop you either; instead it promises a kind of systemic destruction directly resulting from your efforts to impose textual order. And Hayek&apos;s argument is actually one of sheer impossibility. Clearly they cannot all be simultaneously correct across the entire problem space. But what unites them is their suggestion that the true purpose and meaning of your ideas isn&apos;t fully captured in the way you write them down. Some part of it all must live elsewhere.&lt;/p&gt;
&lt;h2&gt;The thought-river beneath&lt;/h2&gt;
&lt;p&gt;Rather than reaching for the corporate strategy literature, which would tie up the loose ends I opened at the start, I&apos;d prefer to turn to cinema, which won&apos;t. But I like film here anyway, as it often hides a key part of its meaning somewhere the camera isn&apos;t. This is exactly how Deleuze conceptualizes&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; the works of Syberberg, Straub–Huillet, and Duras in &lt;em&gt;Cinema 2: The Time-Image&lt;/em&gt;.:marginnote[Duras washes the others, although S–H have &lt;em&gt;Too Early/Too Late&lt;/em&gt; going for them.] Calling attention to the disjunction:marginnote[&lt;em&gt;Proprement cinématographique&lt;/em&gt;, Deleuze calls it.] between the visual and the audible, he says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A voice speaks of something, someone is talking about something, at the same time as we are shown something else. That which one is speaking about is actually &lt;em&gt;underneath&lt;/em&gt; what we see... La parole s&apos;élève dans l&apos;air... cela dont elle nous parlait s&apos;enfonce sous la terre.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We can thus imagine the communication floating above the image; as sound- and visual-images detach uncrossably, the image sinks beneath the speech. Contra McLuhan, the medium is the message&apos;s superstrate.:marginnote[If you hit the medium, keep digging.]&lt;/p&gt;
&lt;p&gt;However, we need to take care not to suggest that one mode is then foregrounded at the expense of the other. It&apos;s not as if the speech act dominates, or conversely in our analogy that thinking represents some secret, all-consuming mystical force. Rather, as Deleuze points out, &quot;neither of the two faculties is raised to higher exercise without reaching the limit which separates it from the other, but connects it to the other through separating it&quot;. Uncrossable, yes, but &quot;always crossed because uncrossable&quot;. So too with thinking and writing: writing alone misses the Hayekian tacit, and thinking alone fails the threshing test if the bad ideas aren&apos;t winnowed. The limit point creates the reinforcing feedback loop.&lt;/p&gt;
&lt;p&gt;With this in mind, what would it look like for your strategy to sink beneath its own presentation in the same way? Start with the paucity of good strategy writing; most of the literature commits the obviously legible bits to paper and yet doesn&apos;t -- or can&apos;t -- share what makes the strategy really tick, because it&apos;s impossible to give effect to the precise cultural boundary conditions that instantiate your problem space. Then we see why strategy wrongness so often equilibrates at non-zero levels: the cost of transmitting the unwritable exceeds many strategists&apos; textual credit limit.:marginnote[This metaphor doesn&apos;t quite get things right, as there&apos;s no cost function in either Hayek&apos;s impossibility theorem or in Deleuze&apos;s cinematic analysis. But from a corporate finance perspective, you&apos;ll always pay more to transmit what you can&apos;t write, and capturing it outright might require unbounded credit.] It also explains why pilots function as contronyms: the labels we attach to our work are orthogonal to their meaning.&lt;/p&gt;
&lt;p&gt;The same disjunction cuts across the ways we operationalize strategy. The &quot;no surprises at the governance table&quot; phenomenon is a good example; this is when a decision-maker confronted with an underbaked or improperly socialized idea -- and critically, one whose unwritten foundation hasn&apos;t yet been disclosed -- doesn&apos;t take it well. The formal presentation is supposed to float above a prior consultation, or an off-the-record discussion, or something. When those don&apos;t happen, the meaning is captured entirely by the text -- and more so by the surprise it produces. To say precisely what should have happened before the meeting would probably destroy its value. And yet my inability to say it is consequentially irrelevant, because in our example the presentation demonstrably fails to land anyway. So amid the uncommunicability of the problem, there must have been a &lt;em&gt;there&lt;/em&gt; there.:marginnote[A more esoteric example is the Outlook Kremlinology that occurs when you ignore the text of an email and foreground the metadata: what time the email&apos;s sent, who is and isn&apos;t in cc, what order their names appear, and whether the boss spells the word &quot;thanks&quot; in full.]&lt;/p&gt;
&lt;p&gt;More broadly, this anticipates two common strategy failure modes. On one hand we have governance by pure execution, which can and often does end invisibly, with minimal credit advanced to the executors; on the other falls governance by PowerPoint, which fails the sundry writing traps I&apos;ve laid out here. But the PowerPoint problem isn&apos;t just a too-lossy knowledge-compression algorithm; that would merely restate Tufte&apos;s Columbia disaster argument.&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; Tufte is not wrong that slide decks often leave out important contextual material -- indeed, most PowerPoints are much too high-level -- and that they can&apos;t and shouldn&apos;t substitute for detailed technical reports. But this is all orthogonal to my point: the real systemic problem arises whenever the collection of texts consolidates unilateral strategic authority. In the cinematic case, speech and image operate according to heautonomous logic: each is a complete code, but the art form insists that they cross amid their disjunction. In strategy, we need the equivalent -- a tacit system that counterbalances the text without deriving any authority from it. Without this, we create the conditions for strategy to rot, regardless of how granular of an appendix we attach.&lt;/p&gt;
&lt;p&gt;What lies underneath the written text is vast and unknowable, just like the inner lives of everyone you&apos;ll pass on the street tomorrow. It is more difficult to grasp than in the cinematic case; you can&apos;t map its dimensions. But I can tell you it exists in spite of that, and in fact the health of your system relies on that existence. That means this post too is merely the shadow of a realer idea sinking underneath the earth.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_Secret_of_Polichinelle_(play)&quot;&gt;The Secret of Polichinelle&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Or rather, per Scott, to be written down so the referent could be taxed. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;See &lt;a href=&quot;https://www.youtube.com/watch?v=eI1zLKFM-do&quot;&gt;this lecture&lt;/a&gt;. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Edward Tufte, &lt;a href=&quot;https://www.edwardtufte.com/notebook/powerpoint-does-rocket-science-and-better-techniques-for-technical-reports/&quot;&gt;&quot;PowerPoint Does Rocket Science -- And Better Techniques For Technical Reports&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>The optimal amount of framework wrongness</title><link>https://danielspracklin.com/posts/optimal-amount-of-framework-wrongness/</link><guid isPermaLink="true">https://danielspracklin.com/posts/optimal-amount-of-framework-wrongness/</guid><description>it&apos;s not non-zero, but the equilibrium is</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are many reasons why a given strategy framework shouldn&apos;t apply to your specific situation. But coming up with something better fights against the path-dependent equilibrium your org&apos;s strategy function lives by.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;If you like systems thinking&amp;lt;/span&amp;gt;, you&apos;ve probably heard that the optimal amount of fraud is non-zero.&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; The argument is that at a certain point, the cost of eliminating the next dollar of fraud costs more than the dollar saved, and businesses naturally land here because they already internalize fraud loss.&lt;/p&gt;
&lt;p&gt;Where else might the optimal amount of a bad thing be non-zero? Strategy frameworks look like a good candidate, but the way they actually operate is different from what you might expect.&lt;/p&gt;
&lt;h2&gt;Inverting frameworks&lt;/h2&gt;
&lt;p&gt;In a &lt;a href=&quot;https://danielspracklin.com/posts/inverted-orgs/&quot;&gt;previous post&lt;/a&gt; I talked about the strategic value of interrogating the metaphors you live by to identify where they&apos;re most distorted. My suggestion was to imagine the strengths, weaknesses, and conditions of possibility that arise from the logical inverse of your situation. Now I&apos;d like to test this idea against &lt;em&gt;management strategy&lt;/em&gt; itself, which is its own kind of metaphor and is therefore susceptible to lensing effects.&lt;/p&gt;
&lt;p&gt;Let&apos;s start with Prahalad and Hamel&apos;s core competencies. In &quot;The Core Competence of the Corporation&quot;, they frame success as a coordination problem by asking what a firm does well uniquely, not necessarily &lt;em&gt;within&lt;/em&gt; a business line but &lt;em&gt;across&lt;/em&gt; lines. To the authors, competencies boil down to providing broad potential market access, contributing to perceived customer benefits, and being difficult to imitate.&lt;/p&gt;
&lt;p&gt;This is the standard reading. But what if we flip this conception of the org on its head? Imagine an organization with literally no core competencies, proficient only in common, easily copied areas. Surely such a firm would utterly fail to differentiate itself. But there&apos;s actually a trivial counterexample that interrupts the metaphor. Picture an organization that has access to no markets beyond its own and that is trivially easy to imitate. This sounds a lot like a public utility! Your energy utility does precisely one thing, is entirely uninterested in competing in other areas, isn&apos;t directly downstream of most market incentives, and probably does things that most industry competitors could match on a technical and operational level.&lt;/p&gt;
&lt;p&gt;You may protest the fairness of this point, since utilities exist due to statutory fiat, not because they&apos;re necessarily any good at the job. But that causal logic is actually backwards: the mandate creates the &lt;em&gt;need&lt;/em&gt; to provide a good enough service, and in this context even a mundane service is unintuitively valuable. Your water utility serves you a plentiful resource in a completely imitable way, but the plenitude of water is precisely what makes it valuable to provide at cost and at scale.&lt;/p&gt;
&lt;p&gt;You might also object that this inversion suggests only that entrepreneurs shouldn&apos;t try to start a business that supplies a town with water. And that&apos;s probably true!:marginnote[Maybe less so for my UK readers, but my cursory research suggests this is the only major purely private national exception to the broader rule.] But again, our real point is that the inverse of a traditionally &quot;successful&quot; business can be consistent with success too -- it just depends on how you define your market. And this illustrates the real underlying condition, that the core competency model rests on a shaky assumption about your boundary conditions. Success can be selected for by political factors, not just economic factors.&lt;/p&gt;
&lt;h2&gt;Flow asymmetry&lt;/h2&gt;
&lt;p&gt;So frameworks are a bounded metaphor for organizational success, but we shouldn&apos;t exchange meaning between metaphor and analysis.&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; This line of reasoning suggests that frameworks are unhelpful, or more charitably, that they&apos;re overused in strategic contexts. But I&apos;d like to argue &lt;em&gt;in favour of&lt;/em&gt; suboptimal frameworks -- or at least explain why they exist at your natural equilibrium point.&lt;/p&gt;
&lt;p&gt;The obvious reason why you might want to use a bad framework analogizes McKenzie&apos;s fraud case: better frameworks impose a coordination tax that could exceed the marginal increase in strategic value. Let&apos;s take &lt;a href=&quot;https://en.wikipedia.org/wiki/VRIO&quot;&gt;VRIO&lt;/a&gt;: on some level it doesn&apos;t matter that this framework produces &quot;wrong&quot; intuitions about utilities if you can&apos;t agree with your colleagues about how to improve upon it. What parts of VRIO still work -- can we just apply VIO, or is it RIO, or maybe one-half of each? If you need to write an HBR article just to figure out which fractions of a framework to use, then you&apos;ve wasted everyone&apos;s time. So agreeing on someone&apos;s VRIO analysis -- no matter how much we might privately question the framework&apos;s fitness for purpose -- saves us the tax by maximizing the surface area of our shared assumptions.&lt;/p&gt;
&lt;p&gt;But this is only true to a first approximation.:marginnote[Not surprisingly, &quot;vague is actually good&quot; is a tough sell for a systems thinking blog.] Early in law school, I questioned the value of adopting &lt;a href=&quot;https://en.wikipedia.org/wiki/Purposive_approach#Canada&quot;&gt;Driedger&apos;s rule&lt;/a&gt; or the purposive interpretation approach on the basis that it papers over language that&apos;s essentially contestable. And why would anyone prefer incrementalist, judge-made common law when the neatly mathematical and dispute-preempting civil law exists? To some extent, these objections are valid! While precision has a cost that my common-law-advocating readers may point to -- maintaining a civil code requires heavy machinery -- it also confers significant benefits. And the cost of that precision is displaced onto two substantially resourced branches of government. This is a structurally neat solution because the population that would otherwise bear the cost of vague laws actually elects the legislature, which closes the accountability feedback loop.&lt;/p&gt;
&lt;p&gt;Things are a bit worse in your organization. There are the coordination-tax costs to precision that we discussed above, sure. But more importantly there are costs to vagueness, and they&apos;re systemically trickier to solve because of flow asymmetry. When strategists make a vaguely articulated decision, your operational teams scramble and your analysts write a post-hoc justification for the play. But the strategists don&apos;t feel any of this; at their level, vague language retains optionality and can be reinterpreted without cost as consultancy,:marginnote[Whence many of the suboptimal management strategy frameworks we&apos;ve been discussing!] whereas a more precise framework provides no such direct benefit.:marginnote[There are certainly &lt;em&gt;second-order&lt;/em&gt; benefits to clearly articulating your strategy &lt;em&gt;à la&lt;/em&gt; civil code, but these eat into your time, and it&apos;s unclear if they&apos;d offset the loss of the first-order optionality that the vaguer strategy unlocks.] And unlike in the civil law, there&apos;s no accountability loop to speak of, because an institution that bears the precision cost actually shifts it back onto those who set the framework. The suboptimal framework calcifies due to the asymmetry of cost and benefit flows.&lt;/p&gt;
&lt;p&gt;The catch is that both pressures we&apos;ve discussed -- between political and market effects in our utility example, and between precision and the cost of framework maintenance -- both encode the same accountability mechanism. Business framework developers don&apos;t gain much by controlling for non-market-captured players because public choice theory is a separate domain, for better or worse. And a big-picture strategist doesn&apos;t directly benefit by handing the analysts a more precise playbook. In both cases, the party who&apos;s best placed to improve the framework isn&apos;t accountable to the party who would benefit from the fix.:marginnote[Per Charles Frankel, a decision is only responsible if the decision-maker &quot;answer[s] for it to those who are directly or indirectly affected by it&quot;. That doesn&apos;t happen here.] This is exactly the &lt;a href=&quot;https://danielspracklin.com/posts/ungaming-the-counterweight/&quot;&gt;gamed counterweight problem&lt;/a&gt; that I wrote about, just in another field. In both cases we&apos;re missing an arm&apos;s-length institution with the right incentive structure to preempt path-dependence toward the bad-strategy equilibrium.&lt;/p&gt;
&lt;p&gt;So if the framework owner pays the cost of imprecision, the optimum is non-zero. If they don&apos;t, the optimum only &lt;em&gt;looks&lt;/em&gt; that way. The systems fix has many names -- call it foresight or environmental scanning or a strategy red team or a VSM S4&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; -- but the name doesn&apos;t matter as much as its placement and what it&apos;s accountable for. Only relocating who pays for framework wrongness can shift the equilibrium toward zero.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Patrick McKenzie, &lt;a href=&quot;https://www.bitsaboutmoney.com/archive/optimal-amount-of-fraud/&quot;&gt;&quot;The optimal amount of fraud is non-zero&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you do, your bank might resurrect a 2008-era value-at-risk model or your shoe company might start selling AI compute. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Viable_system_model&quot;&gt;Viable system model&lt;/a&gt;. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Ungaming the counterweight</title><link>https://danielspracklin.com/posts/ungaming-the-counterweight/</link><guid isPermaLink="true">https://danielspracklin.com/posts/ungaming-the-counterweight/</guid><description>on solipsistic metrics</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When your counterweight metric is gameable, you&apos;ve got to anchor it outside your system to get real signal. Otherwise you&apos;re only accountable to your shadow.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;Good metrics development&amp;lt;/span&amp;gt; is hard. There&apos;s never just one metric,&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; since your operating context almost certainly isn&apos;t dominated by one principal component. And your KPIs have to interrelate anyway, both for standard Goodhart reasons, but more interestingly because your metrics can degrade due to floor or &lt;a href=&quot;https://en.wikipedia.org/wiki/Ceiling_effect_(statistics)&quot;&gt;ceiling effects&lt;/a&gt;. Imagine you&apos;re a decision-making body that must publish reasons. You decide to track time-to-decision, reasoning that it furthers transparency, but it&apos;s easy to forget that procedural fairness constrains delivery speed. Eventually you can&apos;t move any faster, and even slight slowdowns later on might not show up in your metric due to the floor.&lt;/p&gt;
&lt;p&gt;This is of course why counterweight metrics exist. But what happens when your counterweight is gameable too? Imagine your decision-making body is now pitching an advisory service to proactively guide clients along the happy path. You might track the number of outreach events you organize, or the number of client questions you answer, or how quick your turnaround time is. Obviously you can game this by splitting up your team or churning out more, smaller specs, or whatever. But there&apos;s a deeper outcome problem here because your classic counterweights -- think client satisfaction -- are also easy to game.&lt;/p&gt;
&lt;p&gt;The deliberate gaming strategy is just running outreach with your friends. The unintentional version is more incisive though: your clients might not have exit options, so they&apos;ll probably give your service five stars. This is just another shade of &lt;a href=&quot;https://danielspracklin.com/posts/median-mismatches/&quot;&gt;median mismatch&lt;/a&gt;; the underserved population disappears entirely when we select for the parties who don&apos;t have other options. And on some level, that&apos;s &lt;em&gt;all&lt;/em&gt; your clients, because they&apos;re all bound by the very system that&apos;s aiming to measure them.&lt;/p&gt;
&lt;p&gt;If you can&apos;t manufacture accountability from within a captured system, a counterweight for your counterweight loses salience due to inherent solipsism. Gaming the counterweight basically just becomes self-referential measurement. This is a good example of what &lt;a href=&quot;https://en.wikipedia.org/wiki/Second-order_cybernetics&quot;&gt;second-order cybernetics&lt;/a&gt; calls the eigenform. As our measurement progressively selects for an increasingly captive population, each additional measurement ends up returning the same value. Nobody who&apos;s left has the right incentive structure to provide anything &lt;em&gt;other&lt;/em&gt; than the five-star rating. At the limit point, you&apos;re no better off with the counterweight than you were without it.&lt;/p&gt;
&lt;p&gt;To escape this trap, you need an external anchor point, something that&apos;s not captured by your own system. In the decision-maker example, this probably looks like an audit function,:marginnote[However, we need to be clear that even an independent audit function can be captured by a larger system. It&apos;s a little like being at arm&apos;s length in a very small room with no exit.] or an independent researcher looking at frequency or severity of harm, or anything else that could find adversely against you even when your metrics are sky-high. It takes a bold leader to suggest a metric that rhymes with &quot;let&apos;s see how often we lose on judicial review&quot;, but it&apos;s a concrete way to avoid counterweight metrics that don&apos;t measure anything real.&lt;/p&gt;
&lt;p&gt;On the surface, this is the value proposition for management consultants -- if your governance model or corporate strategy aren&apos;t working, get an autonomous outside party to interview the players and recommend a structural fix. But everyone they interview will be captured too. The systems fix is to ask someone with independent accountability to observe not the players but rather the consequences, because the purpose of the system is what it does.:marginnote[On some level, the organization that consistently receives great feedback from its captured clientele is measuring exactly what it exists to accomplish.] This outside focus on outcomes suggests an entire such network of bilateral relationships. Each is self-reinforcing but the parties are anchored to something beyond their own systemic boundary; this avoids the self-referential metrics trap and allows for properly ungamed feedback. And while individual nodes can be captured, defunded, or hollowed out from within by bad counterweights, the network topology is much more resilient.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Capital Gains, &lt;a href=&quot;https://capitalgains.thediff.co/p/north-star-metric&quot;&gt;&quot;There&apos;s Never Just One North-Star Metric&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Median mismatches</title><link>https://danielspracklin.com/posts/median-mismatches/</link><guid isPermaLink="true">https://danielspracklin.com/posts/median-mismatches/</guid><description>this blog&apos;s favourite measure of central tendency</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When your distribution&apos;s skewed, the median actor isn&apos;t responsible for the median unit of activity, so your policy -- and your metrics -- should target them separately.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;Last month I replaced&amp;lt;/span&amp;gt; the apartment&apos;s old thermostat with an Ecobee. Great device, connects to HomeKit, and it even warns me about poor air quality. Plus the old thermostat was decidedly &lt;em&gt;not&lt;/em&gt; great, what with its baffling 1980s-era user interface and mercury-laden interior.&lt;/p&gt;
&lt;p&gt;But actually getting rid of the thermostat is the trickiest part of installation! It turns out that mercury disposal is a nuisance. You can&apos;t just throw the stuff in the trash, and while you &lt;em&gt;can&lt;/em&gt; drop it off at disposal sites coordinated by the Thermostat Recovery Program, there are only a few such places in Ottawa. And most of them are in light industrial parks that are nowhere close to where I live. So what to do? I could walk the 15 kilometre round trip, but light industry apparently runs on the same weekday-only banking hours my job does. Plus I don&apos;t own a car, making a post-work drive impossible, not to mention a double tax on environmental consciousness. I&apos;m not going to dump this in the garbage, so I guess I&apos;ll eat the $35 rideshare cost one of these days. But now I&apos;m curious: why are responsible mercury disposal sites situated so far away from where most people live?&lt;/p&gt;
&lt;p&gt;Maybe I shouldn&apos;t be too surprised. A cursory Wikipedia search reveals that mercury still has industrial applications, so it makes sense to set up your disposal point in close proximity to your biggest would-be polluters. This gives a right-tailed distribution that looks something like the following:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/plot1.webp&quot; alt=&quot;The right-tailed mercury disposal distribution&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The tail here makes sense: while most people don&apos;t dispose of much (if any) mercury, there are a few players who generate a tonne of it.:marginnote[And they&apos;re probably the same firms that drive disposal placement!] But I prefer to cast this as a case of &lt;strong&gt;mismatched medians&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/plot2.webp&quot; alt=&quot;Mismatched medians; the placement scheme rewards high-volume players but underserves most actual households&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now it&apos;s clear that the median disposer isn&apos;t responsible for the median kilogram of mercury.&lt;/p&gt;
&lt;p&gt;This phenomenon has a real name, length bias, which is perfectly serviceable if you feel like cracking open a stats textbook. But to me the median framing is more intuitive because it forces you to think about &lt;em&gt;whose&lt;/em&gt; median you&apos;re looking at, which makes the tails&apos; effect on the distribution more legible. And the solution isn&apos;t fixed; sometimes the right strategy is focusing on the tails instead of the masses! Byrne Hobart does something similar on a podcast episode with Patrick McKenzie&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; when he talks about the economics of paid services: the median spender of dollars usually doesn&apos;t spend the median dollar. So optimizing for the person who actually spends that median dollar -- which usually means caring much more about behaviour at the right tail -- can make more financial sense than targeting your largest segment.&lt;/p&gt;
&lt;p&gt;But we&apos;re dealing with public choice here, not profit maximization, so which median makes more sense to index on? If you check the &lt;a href=&quot;https://www.hrai.ca/trp&quot;&gt;Thermostat Recovery Program&lt;/a&gt; website at the time of publication, the KPIs they report are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Number of mercury vessels: 359,774&lt;/li&gt;
&lt;li&gt;Number of thermostats: 237,187&lt;/li&gt;
&lt;li&gt;Weight of mercury in kg: 899.44&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These metrics tell a clear story about volumes, but none about active users. How many people have actually used their service? We can&apos;t know because non-compliance is always unobservable. Further, these metrics can&apos;t suggest how different things would be if we&apos;d counterfactually put the disposal sites downtown instead, so they&apos;re biased by the same selection mechanism we&apos;re trying to optimize.&lt;/p&gt;
&lt;p&gt;What do we want to do then? Do we recover as much mercury from known entities as possible at the expense of the counterfactual, or do we incentivize proper disposal by the &quot;average&quot; (median) person, even if they&apos;re not responsible for the median kilogram of mercury? Maximizing recovery sounds great, but it ignores another key way these parties are treated differently. If the tails are regulated, then the behaviours within those tails are effectively already constrained! A deeply non-exhaustive CanLII search indeed turns up some mercury regulation that&apos;s aimed primarily at industry (see for example the &lt;em&gt;Cross-border Movement of Hazardous Waste and Hazardous Recyclable Material Regulations&lt;/em&gt;&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;). So we can argue that regulation turns its counterparty, disposal site placement, into a compliance tool for the residual: the &lt;em&gt;non-regulated&lt;/em&gt; parties. And per my predicament, few of them are being served by the current locations. This suggests more thermostat drop-offs in the central business district and suburbs. A quick Fermi estimate suggests that millions of Canadians would stand to benefit.:marginnote[16 million dwellings; let&apos;s say 70% of these dwellings were built before mercury thermostats were phased out; maybe half of &lt;em&gt;those&lt;/em&gt; actually had the mercury thermostat installed; and let&apos;s say 30% of &lt;em&gt;those&lt;/em&gt; still have the mercurcy thermostat on the wall, assuming a 3% to 5% annual risk of HVAC replacement.]&lt;/p&gt;
&lt;p&gt;Another argument for thinking in medians is that it reduces the temptation to oversimplify our population with a single bad point estimate. If we &lt;em&gt;don&apos;t&lt;/em&gt; quantify the tension between the median person and the person who&apos;s responsible for the median unit of activity, the mean becomes an especially dangerous measure of central tendency. For example, &quot;average-cost-per-x&quot; metrics are insidious because they represent a person who doesn&apos;t exist within either of the subpopulations we care about. The median OC Transpo rider probably takes a reasonably short trip, but the median &lt;em&gt;kilometre&lt;/em&gt; is probably generated by someone commuting from Kanata or Orleans. A cost-per-rider metric fuses both medians into a principal component that doesn&apos;t represent anything well, and probably results in routes that are too clunky for quick commuters:marginnote[Dodging a route over a couple blocks to capture a third-tier destination sounds like a nice coverage move, but it effectively degrades headway.] but too infrequent for the long-haulers.&lt;/p&gt;
&lt;p&gt;This is also breeding ground for ecological fallacy problems, where it&apos;s perversely most policy-expedient to ignore your population&apos;s dynamics entirely. In the mercury context, our cost per kilo recovered might look terrible if we set up a downtown disposal site, but that&apos;s the price of capturing the low-mercury-volume people who were never driving to the industrial park in the first place. Why do some policy regimes do this? The illegibility of the subpopulations might be the entire point. Collapsing subpopulations with competing interests routes around some tough choices about who doesn&apos;t get served. But as we&apos;ve seen, the second-order effects -- bus routes that annoy everyone, mercury drop-off sites that might not be used by a single Ottawa household -- are strictly worse. In this sense, my $35 rideshare is just the externality resulting from my own illegibility.:marginnote[Consultation with my web analytics data shortly before drafting did not suggest sufficient evidence to reject this hypothesis.]&lt;/p&gt;
&lt;p&gt;So in general, when your distribution is skewed, your medians won&apos;t match. One of them represents the actors, and the other is weighted by what they&apos;re doing. Specifying both helps avoid collapsing our subpopulations into bad point estimates, and it increases our policy optionality by showing us exactly who we&apos;re serving, who we aren&apos;t, and when that mix is worth changing.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Complex Systems: &lt;a href=&quot;https://www.complexsystemspodcast.com/episodes/byrne-hobart-whales-miscellany/&quot;&gt;Bits, Bytes, and Burgers with Byrne Hobart&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://laws-lois.justice.gc.ca/eng/regulations/SOR-2021-25/FullText.html&quot;&gt;&lt;em&gt;Cross-border Movement of Hazardous Waste and Hazardous Recyclable Material Regulations&lt;/em&gt;, SOR/2021-25&lt;/a&gt;. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Pilot licenses</title><link>https://danielspracklin.com/posts/pilot-licenses/</link><guid isPermaLink="true">https://danielspracklin.com/posts/pilot-licenses/</guid><description>Who&apos;s allowed to fly the pilot?</description><pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This post distills personal views on the workplace. I&apos;m not speaking for my employer and they don&apos;t necessarily endorse what I write here.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Contronyms&lt;/h2&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;Last year&amp;lt;/span&amp;gt; I &lt;a href=&quot;https://danielspracklin.com/posts/stepwise-traps-limit-continuous-improvement/&quot;&gt;remarked&lt;/a&gt; that pilot projects are contronyms that become a corporate &lt;em&gt;fait accompli&lt;/em&gt; the moment they&apos;re given the name. Now that I&apos;ve got a few more pilots under my belt, I have cause to revisit my thoughts!&lt;/p&gt;
&lt;p&gt;Here&apos;s some intuition for the argument. For one thing, pilots often require just as much investment as full-scale projects in many cost centres -- you only save on scaling, and your sunk costs don&apos;t know that your pilot is a pilot. Second, the non-pecuniary cost of spinning up a pilot project can be big enough that you might be politically exposed if it&apos;s shuttered too quickly. In this sense, the pilot is not actually the instantiation of a new idea intended to sway an on-the-fence executive, but rather the result of their approval. So you should expect that many pilots will live on, at worst considered a qualified success.&lt;/p&gt;
&lt;p&gt;But you might object that you&apos;ve seen pilot projects fail before, and of course they do! So what&apos;s going on here?&lt;/p&gt;
&lt;p&gt;What ends up being load-bearing here is the word &quot;pilot&quot;, not the actual project it was intended to represent. This is due to a decrease in accountability that follows from the contronym observation: if your pilot ends up failing, it&apos;s not because it was a bad idea. No, it comes to fail &lt;em&gt;because&lt;/em&gt; it was a pilot -- we just didn&apos;t fund it properly, or the market conditions weren&apos;t right, &amp;amp;c &amp;amp;c. In other words, we are making something like a promise,&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; perhaps a promise to displace accountability onto the project, when we call our work a &quot;pilot&quot;. This kind of scapegoat pilot conveniently decouples failure from the quality of the idea that spawned it. This renders the root cause of success illegible to the system. And as we&apos;ll see, that illegibility can cut both ways.&lt;/p&gt;
&lt;p&gt;But the main problem here, and one reason I suspect so many people are uncomfortable with this kind of spin, is that failure is &lt;em&gt;supposed&lt;/em&gt; to be legible so that it generates information! As Reinertsen says in &lt;em&gt;The Principles of Product Development Flow&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;... most companies do a far better job of communicating their successes than their failures. They carefully document successes, but fail to document failures. This can cause them to repeat the same failures. Repeating the same failures is waste, because it generates no new information. Only new failures generate information.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;New failures are legible failures. But reaping the upside of those failures is contingent on running your pilot the right way. How might we interact within such a system? I&apos;d start by considering how optionality and accountability interact. Low-optionality, low-accountability projects aren&apos;t terribly interesting for our purposes,:marginnote[They need to exist -- you&apos;ll always need someone answering the phones, so to speak -- but they&apos;re easy enough to operationalize without a pilot.] and neither are the kind of high-optionality, high-accountability projects that lend themselves to founder-mode strategic plans.&lt;/p&gt;
&lt;p&gt;More interesting are high-optionality, low-accountability situations, where there&apos;s little need for a pilot&apos;s political cushioning, although you might run one anyway as an experiment.:marginnote[More on this later.] Likewise, low-optionality, high-accountability projects are must-win situations that require escape routes. Pilots can play that role, although they might take you in multiple directions.&lt;/p&gt;
&lt;h2&gt;Pilots as hedges&lt;/h2&gt;
&lt;p&gt;If you believe the contronym theory, the adverse outcomes of hedges should be easy to spot because they direct us toward lower accountability. There, the illegibility of failure blurs the distinction between learning that something doesn&apos;t work and &lt;em&gt;declining to try at all&lt;/em&gt;. So the curse of the hedged pilot is its inversion of experiment logic: it ensures that we learn as little as possible. It&apos;s kind of like an anti-trial balloon: instead of leaking an idea to see if it has popular support, we launch a pilot to &lt;em&gt;avoid&lt;/em&gt; the tough conversation about its validity.:marginnote[Some domain precision is required here, as you&apos;ll be less likely to see this problem if your pilot costs real money or stakes your company&apos;s reputation. In the realm of public choice though...] Trial balloons may feel duplicitous for good reason, but at least they help test your Overton window. Pilots-as-hedges do the opposite and never manage to get off the ground.&lt;/p&gt;
&lt;p&gt;It would be convenient if we could somehow induce organizations to index on the visibility of results. But if the point of a hedged pilot is its illegibility, then we should expect pushback.&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; On some level, the system is following the process &lt;a href=&quot;https://danielspracklin.com/posts/stepwise-traps-limit-continuous-improvement/&quot;&gt;for its own sake&lt;/a&gt;, not because it represents an objectively good or prosocial idea. It then becomes progressively more rational for individuals to select for illegibility and hedge their pilots, even as it harms the org&apos;s ability to complete the causal loop and generate new information from its failures. This leads to a tragedy of the commons, where your entire organization&apos;s legibility decreases monotonically as individual hedgers siphon off limited resources for personal gain. This all leads us to a liminal space where good experimentation is designed to fail often, but the experimental vehicle displaces failure entirely.&lt;/p&gt;
&lt;h2&gt;Pilots as experiments&lt;/h2&gt;
&lt;p&gt;But there&apos;s also a way to increase your options without hedging. The obvious counter is the experimental pilot. Implementation details are pretty straightforward if you think about how a typical experiment or RCT is run. If we&apos;d preregister our data analysis plan, we&apos;ll also preregister our pilot&apos;s evaluation criteria, failure conditions, and stopping rules. Likewise, we might borrow from power analysis by calculating the sample size required to detect whether our pilot had a practically significant effect. I&apos;ve never seen pilots do this! They&apos;ll often timebox their pilots based on calendar deadlines, not on whether the scope would produce a detectable and falsifiable signal by then. But it&apos;s an easy fix. Finally, even if an experiment doesn&apos;t generate enough evidence to discard the null hypothesis,:marginnote[Let&apos;s ignore the problems with NHST long enough for my point to land.] we&apos;ve still learned something. Maybe we can&apos;t publish it in an academic journal, but it&apos;s probably suitable for an internal wiki.&lt;/p&gt;
&lt;p&gt;This is all well and good, but if hedged pilots are the equilibrium of a tragedy of the commons, then you won&apos;t get much buy-in for an experimental approach that would disrupt your peers&apos; local maximum. How do we move past this? One interesting thing about experiments is that they&apos;re often blinded -- we deliberately withhold information sharing to reduce bias. What I&apos;m going to suggest is organizational heterodoxy, but what if we siloed pilots similarly?:marginnote[The comparison isn&apos;t quite one-to-one here; blinding is about preventing bias in measurement, whereas silos arise due to decoupled ownership. But they both impose information boundaries that lead to thematically similar outcomes.]&lt;/p&gt;
&lt;p&gt;&quot;Throwing it over the wall&quot; is a known antipattern in DevOps. It&apos;s now considered bad form to hand work over to another team without context, design details, or an attuned sense of &lt;em&gt;why&lt;/em&gt; we&apos;re solving a problem this way. But what if the wall is a feature for pilots, not a bug? You literally can&apos;t deploy a pilot if you &lt;em&gt;have&lt;/em&gt; to throw it over the wall to someone else! And this forces the kind of experiment-driven conversation I mentioned earlier: naturally you&apos;ll start discussing with the downstream team, who will no doubt want to hammer out evaluation criteria and the like. In &lt;em&gt;Team Topologies&lt;/em&gt; terms, you&apos;d probably want to run your pilot within an enabling team because of their timeboxed interaction pattern. And this often beats the counterfactual; when a stream-aligned team runs a pilot, they also own production, which incentivizes the hedge. This means that you bypass the tragedy of the commons problem entirely, because you don&apos;t need to dip into social capital reserves to implement within your division&apos;s own enabling team.&lt;/p&gt;
&lt;h2&gt;Pilots as speech acts&lt;/h2&gt;
&lt;p&gt;Throwing projects over the wall is a structural org-chart-level move. But when teams start their discussions, they&apos;re back in language territory, and that suggests a linguistic gloss on the approach, by way of &lt;a href=&quot;https://en.wikipedia.org/wiki/Speech_act#Felicity_conditions_and_misfires&quot;&gt;felicity conditions&lt;/a&gt;. In short, I cannot give you a watch merely by pronouncing &quot;I bequeath you my JLC Reverso&quot;, because several conditions must also hold beyond the utterance itself. For instance, I must actually own the watch I intend to bequeath.:marginnote[I&apos;m really doing it to myself with this example.]&lt;/p&gt;
&lt;p&gt;You likely have a mental model for what I mean by an experiment, and all writing assumes that your model overlaps enough with mine for meaning to survive transmission. But if that were ever in doubt -- for example if you began to suspect that a team&apos;s &quot;experiments&quot; were in fact a pretext that served to hide self-dealing or personal enrichment -- it would be doubly important to sketch the boundary conditions of the word &lt;em&gt;experiment&lt;/em&gt;, to give examples of what an experiment is and isn&apos;t, and so on. This is precisely the definitional game we can play with pilot projects to ensure they remain unhedged. If a watch can only be bequeathed while owned, then perhaps by analogy a project can only be a pilot if it is practically reversible. Those are both conditions of circumstance, but there are other relevant ones, such as the preparatory conditions -- if your boss okays every project that lands in their inbox, then your request to approve a pilot project can hardly be said to be felicitous. When we are able to ask felicity-underpinning questions at the governance table, projects that can&apos;t be undone or that would always have been approved cease to be pilots, which strips the word of its troublesome contronym property and sets the stage for system legibility.&lt;/p&gt;
&lt;p&gt;You might object that an organization running on illegibility may not openly permit such questions in the first place. And that&apos;s probably true! A good example of this prohibition is the board meeting. It&apos;s tempting to read the discussion linearly as it&apos;s recounted in the minutes, as if the meeting were the critical inflection point for a project. But the questions, the conversation, the points to register, these are all better read as the &lt;em&gt;dénouement&lt;/em&gt; of prior discussion and agreement that the presenters necessarily can&apos;t see.:marginnote[If this seems like too cynical a reading, consider that many mystery stories end exactly this way. When the detective reveals the killer, the real deductive work has usually already happened off-screen or off-page, making the revelation more of a ritualized performance than anything else.] But when stacked with the wall-throwing approach, we can relocate the question from the governance meeting, where such questions are unaskable, to a handoff, where they&apos;ll arise naturally. This still requires that the receiving team have authority to govern its own roadmap, but that&apos;s a much smaller ask than rewriting the legibility conditions for an entire organization.&lt;/p&gt;
&lt;p&gt;So yes, pilots are often contronyms, but only insofar as your org naturally selects for hedges. Throwing your projects over the wall and taking care to define them felicitously can cut through the inertia-hedge and make the word mean what it&apos;s supposed to.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Illocutionary_act&quot;&gt;Illocutionary act&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;À la Peter Senge: the harder you push, the harder the system pushes back. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>October 2025 update</title><link>https://danielspracklin.com/posts/update-202510/</link><guid isPermaLink="true">https://danielspracklin.com/posts/update-202510/</guid><description>state of affairs in October 2025</description><pubDate>Thu, 06 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;A much-belated&amp;lt;/span&amp;gt; update post! Life&apos;s been busy, but isn&apos;t it always? So that&apos;s not much of an excuse. Maybe I&apos;ll take the last-month version of myself up on my offer to blame the change of seasons.&lt;/p&gt;
&lt;p&gt;On that note, it&apos;s now cold enough that gloves are required unless you want your hands to crack and bleed after runs. And on &lt;em&gt;that&lt;/em&gt; note, I indeed crushed my 5k pb, as I&apos;d hoped for in last month&apos;s update, and then promptly crushed something in my left knee that&apos;s been preventing me from running at all. Poetic!&lt;/p&gt;
&lt;p&gt;Or is it poiesis? I finally got that &lt;a href=&quot;https://danielspracklin.com/posts/why-my-knowledge-base-failed/&quot;&gt;knowledge base post&lt;/a&gt; out of my system, although if I&apos;m being honest it feels a dash undercooked. As seasoning, it&apos;s hard to get the systems thinking balance right. I&apos;ve also been writing a lot for work -- lengthy, painstakingly researched, network-graph strategy stuff -- and that really blunts the appetite for similarly knotty writing in the off-hours. To cleanse the palate, I&apos;ve been working on a pretty different post, something significantly more personal. Not sure where it&apos;ll end up yet, and that&apos;s the fun of a personal blog. There&apos;s no overarching theme here, by design.&lt;/p&gt;
&lt;p&gt;I almost regret to write that I&apos;ve read, watched, and listened to very little of interest in the past month. (For instance, my copy of Dwarkesh&apos;s &lt;em&gt;The Scaling Era&lt;/em&gt; arrived in the mail and I haven&apos;t cracked the cover!) I say &lt;em&gt;almost&lt;/em&gt; because on reflection there&apos;s little sense in apologizing for having left something untouched in a given 31-day period. The unopened book is no less good for it.&lt;/p&gt;
&lt;p&gt;And with that I&apos;m off to sleep, the only ticket to tomorrow. See you in just under a month!&lt;/p&gt;
</content:encoded></item><item><title>Why my knowledge base failed</title><link>https://danielspracklin.com/posts/why-my-knowledge-base-failed/</link><guid isPermaLink="true">https://danielspracklin.com/posts/why-my-knowledge-base-failed/</guid><description>and what I learned in the process</description><pubDate>Sun, 12 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;A couple of&amp;lt;/span&amp;gt; months ago, the topic of group conversation turned to credit card rewards. Someone mentioned that they found it interesting how credit cards functioned as a wealth concentrator in that rewards points are effectively subsidized by poorer users. Immediately my mind jumped to something I&apos;d remembered Patrick McKenzie write on the topic. I say &quot;something&quot; because I knew he&apos;d addressed that exact argument, but I couldn&apos;t remember the substance of his actual point. In fact, I couldn&apos;t conjure up even the faintest hint of what he&apos;d actually said. The conversation moved on while my brain revolved at terminal velocity in desperate recall mode.&lt;/p&gt;
&lt;p&gt;Turns out my memory was a bit off that day -- it was actually a podcast episode,&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; not a blog post -- but I was correct &lt;em&gt;enough&lt;/em&gt;: enough to recall that an expert had shared a great many thoughts on the subject. If only I&apos;d been able to recall any of it!&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;My initial diagnosis was that I&apos;d forgotten the point because I hadn&apos;t written it down. As supporting evidence I weighed up all the times I&apos;d intentionally summarized an interesting piece of information, and remarked on how easily I could recall them months or years later. I even &lt;em&gt;knew&lt;/em&gt; that I knew that writing things down makes them easier to recall. This aligns with my mental model for learning -- as Leslie Lamport (probably) said, &quot;If you’re thinking without writing, you only think you’re thinking&quot;. So why didn&apos;t I do that when it came to credit cards rewards?&lt;/p&gt;
&lt;p&gt;First, I gave myself retroactive permission to be lazy. Empirically speaking, maintaining a knowledge base seems to be hard work! Many people seem to run into problems with formal PKM maintenance -- think curation issues and byzantine, unusable network graphs. But that wasn&apos;t really my issue, as I&apos;d never experienced any problems keeping things clean. My initial architectural conditions seemed fine, or at the very least they hadn&apos;t backfired at scale. Next, I revisited my 2020 piece about &lt;a href=&quot;https://danielspracklin.com/posts/a-second-brain-experiment/&quot;&gt;using Obsidian as a &quot;second brain&quot;&lt;/a&gt;. Looking back at that post, I see an unguarded optimism that I don&apos;t share today, in large part because I eventually stopped writing much of &lt;em&gt;anything&lt;/em&gt; in Obsidian. There are entire months without notes; months where I must have read hundreds of Hacker News-linked blog posts and journal articles and the like, but apparently didn&apos;t bother to commit that text into any more permanent form. &lt;em&gt;My brain will remember this&lt;/em&gt;, I must have thought, or maybe &lt;em&gt;I know this already so there&apos;s no benefit to writing it down&lt;/em&gt;. When you&apos;ve got a vague intuition for how things work, you&apos;re more comfortable taking the cognitive shortcut of telling yourself that you already understand it well enough to skip the summary.&lt;/p&gt;
&lt;p&gt;So this shortcut turned out to be a bad choice, but maybe it&apos;s a forgivable one. Much like homework, summarization is subject to temporal discounting: the immediate cost of summarizing information is extremely concrete, whereas the long-term value of a summary is less clear-cut. You can&apos;t predict that someone will want to talk about credit card rewards in the coming six months, so the benefit of summarizing it now feels intangible. And if that&apos;s true, I must not have believed in or internalized the long-term value of summarizing a given article.&lt;/p&gt;
&lt;p&gt;The other conclusion I&apos;ve been tempted to draw is that maybe the knowledge base wasn&apos;t doing what I wanted in the first place. It&apos;s all well and good to consult your system when drafting an email or responding to a query. But this does you little good in the heat of the moment, unless you plan on telling your interlocutor to hold that thought while you pull out your phone and regurgitate an Obsidian summary. And yet somehow I&apos;d hoped that the system would enable precisely that kind of real-time activity. If you want intelligent things to say on a wide variety of topics, writing them down might make them stickier, but trying to surface them with a tool designed to be deliberately searched and queried -- something that inherently takes time -- might not have been the most direct approach.&lt;/p&gt;
&lt;p&gt;I suppose this is the paradox at the heart of knowledge management. Writing things down can help you internalize them, but the mere act of transcribing knowledge into a PKM system isn&apos;t magic. There&apos;s an intellectual step between storage and synthesis that was clearly missing in my credit card case, and there&apos;s no shortcut to social proof of intelligence. At some point you&apos;ve got to do the homework!&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Complex Systems: &lt;a href=&quot;https://www.complexsystemspodcast.com/episodes/credit-card-rewards-interchange/&quot;&gt;&quot;No, poor people aren’t funding your credit card rewards&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Armed with the benefit of both hindsight and the Internet, I can now report that card schemes&apos; profit objective functions are indeed more complex than &quot;poor users subsidize rich users&quot;, as North American card segmentation pretty cleanly suggests. If anything, McKenzie argues that most credit card users are actually subsidizing those with &lt;em&gt;middling&lt;/em&gt; credit scores. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>September 2025 update</title><link>https://danielspracklin.com/posts/update-202509/</link><guid isPermaLink="true">https://danielspracklin.com/posts/update-202509/</guid><description>state of affairs in September 2025</description><pubDate>Tue, 30 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;Fall is here&amp;lt;/span&amp;gt; and so is a new update!&lt;/p&gt;
&lt;p&gt;I still haven&apos;t published my second-brain blog post, although completion nears. It needs only a couple solid hours of review and editing, and then it should be ready for public consumption. Much of the delay is running-adjacent; I spent a lot of time on the road this month, which was incidentally the subject of a healthily lengthy race report that also kept me from finishing the planned post.&lt;/p&gt;
&lt;p&gt;On running, as promised in the conclusion to my race report, I&apos;ve been doing more speed work lately. I think I&apos;m getting faster, but the real test will be a late-October 5k that I just signed up for. Hoping to set a personal best! Another welcome side effect of the running regimen is that I&apos;ve been spending less time scrolling on my phone, and more time listening to audiobooks while on runs. It&apos;s certainly one way to finally finish &lt;em&gt;The Recognitions&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;Not much else to report, as it was a pretty one-track month. We&apos;ll see what surprises the change of seasons brings though.&lt;/p&gt;
</content:encoded></item><item><title>Race report: Army Run 2025</title><link>https://danielspracklin.com/posts/race-report-army-run-2025/</link><guid isPermaLink="true">https://danielspracklin.com/posts/race-report-army-run-2025/</guid><description>How the Ottawa Army Run went</description><pubDate>Sun, 21 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Race information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt;: &lt;a href=&quot;https://armyrun.ca&quot;&gt;Army Run&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Date&lt;/strong&gt;: September 21, 2025&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distance&lt;/strong&gt;: half marathon&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Location&lt;/strong&gt;: Ottawa, ON&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time&lt;/strong&gt;: 1:32:36 (chip); 1:32:12 (watch)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Backstory&lt;/h2&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I was a&amp;lt;/span&amp;gt; fairly active kid; in grade school I played soccer and badminton (both poorly) and ran cross country and track. I never thought seriously about distance running since my strengths clearly lay in the shorter-track stuff: your 100 and 200 and 400 metres and so on. Anything over 5k felt torturously difficult and I don&apos;t think I ever managed more than 8k in my first 30 years on earth.&lt;/p&gt;
&lt;p&gt;After high school I stopped running consistently, mostly due to competing academic time commitments and my general unwillingness to spend more time outside in unpleasant Canadian winters than necessary. I was always still fairly healthy -- sure, I ate too many chips, but I counterbalanced that by walking 10,000 steps per day, right? -- but eventually I came to realize that I hadn&apos;t been raising my heart rate above, say, 140 bpm more than a few times a year.&lt;/p&gt;
&lt;p&gt;That changed in late 2023 when I started spin biking. This was brutal at first; I&apos;d never been much of a biker so I hadn&apos;t developed much leg strength, and my aerobic base had completely atrophied. But I eventually restored it to the point where my heart rate didn&apos;t spike worryingly whenever I exerted myself. I settled into a routine where I&apos;d spin for 3 to 4 hours per week, treating it as a high-intensity interval workout.&lt;/p&gt;
&lt;p&gt;In mid-2024, I also started walking more frequently, mostly to stimulate deep thinking. I started with 30 minutes every lunch hour, then I added a half-hour in the mornings before work too, then extended that morning walk to an hour. Before I knew it, I was walking 12k to 15k every day without fail. Then later that year, something persuaded me to try running. I can&apos;t recall what prompted it -- maybe it was finding a pair of deeply discounted Saucony Kinvara shoes, a model I&apos;d quite liked when they were first released, at a local store. Or maybe it was the fact that I was already taking a huge number of steps every day and could save time by doing them more quickly.&lt;/p&gt;
&lt;p&gt;So I found myself running again. Not enough to displace spin, and not enough to gain any major adaptions from it; just enough to feel miserable a couple times a week. And when the weather became less snowy in March 2025, I decided that I&apos;d try to improve my fitness and run more seriously. Now I was running 3, maybe 4 times a week. I even made it up to 18k on a run, surely an impossibly large distance to my high school self. I spent a quarter of the run at over 80% of my max heart rate, but I finished it!&lt;/p&gt;
&lt;p&gt;Unfortunately I also ended up overdoing things. I didn&apos;t plan my nutrition well enough -- probably insufficient carbs -- and ended up bonking pretty much every time I went out. Eventually I just gave up.&lt;/p&gt;
&lt;h2&gt;Training&lt;/h2&gt;
&lt;p&gt;After my poor experience in the spring, I took a bit of time off, then resolved to get back into running and hopefully shed the errant pounds that I&apos;d put on while on break. Impulsively deciding that I needed an extrinsic motivatator, on June 8 I signed up for the Army Run half marathon. I had only 15 weeks to prepare, and while I&apos;d experimented with base-building in the spring, I knew things would have to change if I were to pursue this goal seriously. So I bought a copy of Pfitzinger&apos;s &lt;em&gt;Faster Road Running&lt;/em&gt; and boldly committed to a &lt;code&gt;12/63&lt;/code&gt; Pfitz plan. &lt;code&gt;12/63&lt;/code&gt; builds to just over 100km a week across a 12-week period, which left me with three weeks to get my mileage up to pre-plan levels. Pfitz recommends doing so over ten weeks, and all while starting with a 60km base. I had neither. In retrospect, my decision was very foolish -- I should have bought the book two months earlier, and I shouldn&apos;t have ramped up my mileage so quickly due to the serious risk of injury -- and impractical. The &lt;code&gt;12/47&lt;/code&gt; plan would have been more realistic to start, as I ended up adjusting Pfitz&apos;s plan anyway. But there are many ways to learn, including through failure, and learn I did.&lt;/p&gt;
&lt;p&gt;And so I began the training plan. The Ottawa summer was incredibly hot with many 40+ degree days. Running in these conditions was brutal, so I began waking up earlier and trying to get out of the house by 5:30am at the absolute latest. This offered some respite, albeit at the expense of my sleep schedule. I found myself cutting some of Pfitz&apos;s longer runs short nonetheless.&lt;/p&gt;
&lt;p&gt;I tried a few different shoes during my training. I bought the much-memed Novablast 5 for easy runs, and then discovered that, while comfortable, they were also extremely clunky -- like running with bricks strapped to my feet. My years of the minimal-drop, extremely lightweight Kinvaras had clearly spoiled me. I had more luck with the Adidas EVO SL and the Boston 13. I&apos;d swap between pairs of EVO SL for easy, long, and tempo runs, while the Boston 13 would be reserved for speed work. For race day I debated between the Alphafly 3 and the Adios Pro 4. I eventually chose the latter for their similarity to my existing rotation; the comfort and bounce of the EVO SL with the energy return of the Boston 13.&lt;/p&gt;
&lt;p&gt;I tracked my runs with an Apple Watch using the stock Workouts app. After runs I&apos;d glance at my results in &lt;a href=&quot;https://apps.apple.com/ca/app/healthfit/id1202650514&quot;&gt;HealthFit&lt;/a&gt; and export them to &lt;a href=&quot;https://intervals.icu/&quot;&gt;intervals.icu&lt;/a&gt; for further analysis. The data showed that while my overall fitness was increasing, the slope wasn&apos;t aggressive enough for me to see much of an improvement.&lt;/p&gt;
&lt;p&gt;The mileage increase definitely &lt;em&gt;felt&lt;/em&gt; steep though. I found myself experiencing all kinds of new aches and pains, including some left knee pain that put me out of commission for close to a week and that prompted a PT visit. Turns out it was nothing serious -- just the usual lack of glute strength -- but it wasted valuable time and increased my skepticism about the possibility of finishing the half marathon at all. Plus I still had to continue building aerobic capacity and speed. Things seemed dire.&lt;/p&gt;
&lt;p&gt;In late June I decided that things weren&apos;t quite working, so I started freestyling. On Pfitz rest days or long run days I&apos;d do higher-intensity spin sessions, sometimes supplemented with a shorter run. This meant that I never got a day off, but it helped me ramp up the exercise minutes without running my body into the ground. Looking back I&apos;m not sure if this was the absolute best strategy -- I&apos;ll say more about this later on -- but it got me doing low-impact subthreshold workouts when I might not otherwise have bothered.&lt;/p&gt;
&lt;p&gt;One downside of this approach was speed endurance. I realized I could run decent distances, but not long ones, and definitely not long ones at a competitive pace. By this point I&apos;d reached three or four interval sessions on the spin bike every week, but never more than five runs. This wasn&apos;t helping me get any faster, but my problem was that I absolutely hated the V̇O&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; max runs in Pfitz&apos;s schedule. Running full steam is &lt;em&gt;never&lt;/em&gt; fun, but as I didn&apos;t have a track handy, I had to settle for the multi-use pathway that skirts the city&apos;s main canal, which I really dislliked for such efforts.&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; It&apos;s fairly flat and there aren&apos;t any stop lights or traffic dangers, but the surface is sometimes ridged and knobby, and I was wary of turning an ankle. Plus there were always walkers and bikers to dodge. So for a couple days after each V̇O&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; max effort, I&apos;d discover new aches and pains that became particularly annoying to manage.&lt;/p&gt;
&lt;p&gt;I also had to contend with the 21.1 kilometres of the half-marathon itself. Pfitz&apos;s endurance and progression runs extend to 26km, but this seemed unreachable to me at the time. So I adjusted things yet again, satisfying myself with some sub-2-hour easy runs at half-marathon distance. While it didn&apos;t adhere to the letter of Pfitz&apos;s recommendation, I figured that hitting 2 hours on an easy run would build significant confidence. In my first such effort, run on August 9, I ended up posting a comfortable 1:58 with a pretty significant negative split. I resolved to do this a few more times, cracking 1:56 the next Saturday, then 1:53 the Saturday after that, and then 1:42 the following week. I put more effort and a couple Maurten gels into that last one, but there was definitely gas left in the tank. By this point I was runnning every day and clearing 85 kilometres weekly. Sub-1:40 felt within reach; the only question was by how much.&lt;/p&gt;
&lt;p&gt;So I set myself a race-day goal of 1:37:30, worked out the negative-split paces required to get there, and hoped for the best. The plan was to take the first kilometres easy at around 5:00/km, just to see how I felt, then make a decision about how quickly to jump to a faster pace (4:50/km if I was feeling stiff, 4:40/km otherwise) for the rest of the 5k. Part of the thinking here was motivated by concern about getting stuck behind slower runners; I &lt;em&gt;really&lt;/em&gt; didn&apos;t want to deal with the in-race anxiety of exceeding my budgeted time right at the start of the race. The other rationale was my strong desire to negative split. I&apos;d been taught to aim for a light negative split in my cross country days, and I&apos;d read far too many Reddit horror stories about bonking near the end -- since I wasn&apos;t sure how much I&apos;d have in the tank, never having raced the distance before, this felt important to me. Plus I was banking on the psychological upside of passing folks in the latter half of the race. I&apos;d learned that negative splits are a risky strategy,&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; but I&apos;d already done so many progression runs that I didn&apos;t want to change my training strategy so late in the game.&lt;/p&gt;
&lt;p&gt;About six weeks before the race, I discovered the Norwegian singles training approach from the now-famous LetsRun thread.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; Subthreshold training seemed valuable given my poor experience with V̇O&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; max, so I decided to give the technique a shot in its stead. In retrospect, I probably adjusted my regimen too late to see major adaptations. But it served several useful psychological functions; I no longer felt like my body was falling apart, I broke my old pre-training-block 10k record during a &quot;1km subthreshold, 60 second jog&quot; workout of all things, and I started to feel &lt;em&gt;fast&lt;/em&gt;.&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I kept this approach up for some weeks, then tapered in the final week, skipping spin and progressively decreasing mileage until my ACWR&lt;sup&gt;&lt;a href=&quot;#fn5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; was comfortably below 0.8 and intervals.icu put me in the &quot;fresh&quot; zone. I eschewed Pfitz&apos;s day-before recovery run and decided to take a couple longer walks instead. The night before the race, I ate a bit more bread than usual, then went to bed at about 9pm.&lt;/p&gt;
&lt;h2&gt;Race day&lt;/h2&gt;
&lt;h3&gt;Pre-race&lt;/h3&gt;
&lt;p&gt;I woke up just before 5am and had espresso and some blackberries. I typically don&apos;t eat much in the mornings so this was par for the course. I did some chores around the house and browsed the usual websites for a while. Then I shook out the legs a bit, activated the glutes, put on the race outfit, stuffed three Maurten Gel 100 and my phone into my pockets, and got ready to leave. The attire for the day was mostly Soar -- dart cap, tech tee, and socks -- with Janji half-tights and the Adios Pro 4. It was a chilly morning, but I knew that it would warm up so I didn&apos;t bother to wear anything else.&lt;/p&gt;
&lt;p&gt;The race was set to begin at 9:30am. Fortunately I live close to the starting line at the Ottawa City Hall, so I left at about 9am and arrived early enough to take in the 10k leaving the corrals just before my start time. The area was jam-packed with runners doing warm-ups and fans and live music. Entirely too much of a scene for me on a Sunday morning.&lt;/p&gt;
&lt;h3&gt;Race&lt;/h3&gt;
&lt;p&gt;My fears of getting slowed down at the beginning didn&apos;t materialize as I ended up pretty close to the starting line. As a result, my opening pace was a bit brisker than I&apos;d anticipated; I had no trouble locking in the first couple kilometres at around 4:50/km. Things felt good; my heart rate was a bit more elevated than usual for the pace, but I figured that was mostly situational adrenaline. Otherwise, the first bits of the race were uneventful as we ran through downtown Ottawa and up Sussex toward Rideau Hall. The most noteworthy thing was the bizarre sensation of running with a group. I train exclusively solo, so I found it strange to have to weave around and dodge individuals, to speed up abruptly to pass rows of runners, to hear extended conversations among friends running as a team, and the like. But this wasn&apos;t a bad thing, as I&apos;ll explain shortly, just different.&lt;/p&gt;
&lt;p&gt;At the 5k mark I took a gel and decided to quicken the pace considerably. I didn&apos;t drink anything at the station. As a rule, I never drink while running since fluids tend to slosh around in my stomach -- a most unpleasant sensation.:marginnote[I&apos;ll have to re-evaluate this rule if I ever choose to do a marathon.] This played out fine for me, as I was able to pass lots of folks who slowed down to drink, freeing up more open road to myself. The next five kilometres took us through the Beechwood Cemetery and adjoining neighbourhoods. Lots of families came out of their homes to cheer the runners on, which I&apos;d never experienced before but appreciated. The cemetery portion followed a hilly path but nothing my legs couldn&apos;t handle. I noticed I was starting to pass more and more individuals, but that nobody was passing me. I figured this had to be a good thing; as long as I didn&apos;t bonk near the end then the negative split was working. The friendly competition also boosted my morale, giving me a distraction from questions of pace by offering more tangible short-term objectives to achieve.
As I approached the halfway point, I felt good enough to kick things into high gear. I took another gel just shy of the 10k marker, then turned on the jets and shot for 4-minute kilometres onward. This was a bit more aggressive than I&apos;d originally planned. Maybe it was the adrenaline, or the taper, or the cumulative outcome of my training; whatever the reason, I felt strong enough to handle it. So off I went down the Sir George-Etienne Cartier Parkway and back.&lt;/p&gt;
&lt;p&gt;It&apos;s hard to overstate the psychological benefit of passing people on the back stretch of a race. I think it&apos;s what kept me going at that pace so steadily. In fact, from about 11km onward, I don&apos;t recall being passed a single time. I just kept methodically picking off runners in front of me. Even so, things got tough around the 12 to 13km portion of the race. My form started to degrade, I was working harder to sustain the pace, and my heart rate inched toward the upper edge of my superthreshold zone. I resolved to keep this pace until at least the 16k mark and then re-evaluate how I was feeling about the final 5k dash.&lt;/p&gt;
&lt;p&gt;Around 15km, which is when I planned to take my final gel, I felt some heartburn that must&apos;ve been due to the gel. Not wanting to make things worse, I debated whether to skip the gel. Ultimately I took it; the heartburn didn&apos;t go away but thankfully it didn&apos;t get much worse either. Shortly thereafter we encountered a large hill just north of Rockcliffe. I&apos;d run this hill twice during training and felt confident enough to press on at the current pace. I even passed a few runners in the process, which restored a bit of my mental focus. But the final 5k back toward Sussex and downtown Ottawa were cause to grit my teeth. The current pace was tolerable, but it felt like I couldn&apos;t speed up due to some invisible mechanical blocker. It was like I&apos;d hit a hard ceiling at 4 minutes per kilometre. So I steeled myself for a kick over the final bit of the race instead.&lt;/p&gt;
&lt;p&gt;Near the 19 kilometre marker I glanced at my watch and noticed the time -- up until then I&apos;d only been looking at my overall pace, rolling km pace, and heart rate. It was at this moment that I really internalized that sub-1:35 was essentially guaranteed as long as I didn&apos;t fall apart in the final ten minutes. I didn&apos;t have much of a kick left for the final kilometre; I managed to shave a couple seconds off my pace but was unable to summon the reserves for a proper sprint finish. It didn&apos;t help that there was an unusually steep hill right before the finish line. But I summited it nonetheless, crossing the finish line with a watch time of 1:32:12 and with 1:32:36 on the chip.&lt;/p&gt;
&lt;p&gt;I felt generally fine after the race; my heart rate was back to normal levels within a minute or two, and there were no major pains to account for, aside from ankle soreness, a dull pain in my left toes, and a tight hip.&lt;sup&gt;&lt;a href=&quot;#fn6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; After walking home, I checked the standings and was pleased to see that I&apos;d finished 147th overall, putting me in the top 3% of finishers, and 27th in my age class.&lt;/p&gt;
&lt;p&gt;Here are my splits for the entire race:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kilometre&lt;/th&gt;
&lt;th&gt;Split&lt;/th&gt;
&lt;th&gt;Cumulative&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;23:59&lt;/td&gt;
&lt;td&gt;23:59&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;22:52&lt;/td&gt;
&lt;td&gt;46:51&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20:41&lt;/td&gt;
&lt;td&gt;1:07:32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;20:21&lt;/td&gt;
&lt;td&gt;1:27:53&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Comparatively speaking, my first 5k was unusually slow. After double-checking the results, I realized that despite placing 147th, I had the slowest first 5k split of the top 295 finishers! My &lt;em&gt;deeply&lt;/em&gt; negative split strategy worked as a psychological booster shot, but maybe I could have maintained the superthreshold pace for a couple kilometres if I&apos;d started it sooner, or maybe I should&apos;ve run the first 5k a bit more aggressively. If I&apos;d even copied my second-split speed for those first 5k, I&apos;d have been a minute and change shy of 90 minutes.&lt;/p&gt;
&lt;p&gt;Even so, it felt great to complete a challenge that &lt;em&gt;me from a year ago&lt;/em&gt; wouldn&apos;t have even dreamed to try. And it was doubly great to beat my goal time by five minutes! I&apos;ve signed up for the Ottawa Race Weekend half marathon in May 2026, and one thing I&apos;ll be evaluating is a less lopsided split approach. We&apos;ll see if it propels me below 1:30 and if the Norwegian singles approach can improve my top speed. Looking forward to the next round of training!&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Turns out there was a 400m track just a couple kilometres from me, but I didn&apos;t know about it until too late. It pays to Google things! &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/AdvancedRunning/comments/1bhvxy1/hm_negative_split_advice_help_me_believe/&quot;&gt;r/AdvancedRunning on negative splits&lt;/a&gt;. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.letsrun.com/forum/flat_read.php?thread=12130781&quot;&gt;The LetsRun &quot;Norwegian singles&quot; thread&lt;/a&gt;. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fun fact, iOS 26 now lets you create custom workouts on your iPhone, which is incredibly convenient if you want to do time- or distance-based subthreshold repeats. Unfortunately I didn&apos;t discover this until launch day (no beta for me) so I was not actually able to benefit from it. There&apos;s always next race though! &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.scienceforsport.com/acutechronic-workload-ratio/&quot;&gt;Acute:chronic workload ratio&lt;/a&gt; from Science for Sport. &lt;a href=&quot;#fnref5&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I suspect my left foot is slightly larger than my right; maybe I ought to try half a shoe size up on the left foot? &lt;a href=&quot;#fnref6&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>August 2025 update</title><link>https://danielspracklin.com/posts/update-202508/</link><guid isPermaLink="true">https://danielspracklin.com/posts/update-202508/</guid><description>state of affairs in August 2025</description><pubDate>Sun, 31 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;No new posts&amp;lt;/span&amp;gt; in August. I&apos;m halfway done editing a piece on knowledge bases and second brains, a sort of sober companion to something I wrote &lt;a href=&quot;https://danielspracklin.com/posts/a-second-brain-experiment/&quot;&gt;nearly five years ago&lt;/a&gt;. But editing is hard and writing is harder, and so here I am postless at the end of the month. Shouldn&apos;t be too much longer though! In other news, I again thought about changing blog SSGs (although of course I didn&apos;t actually change anything) and I also improved the test coverage in &lt;a href=&quot;https://gitlab.com/danielspracklin/daniel&quot;&gt;my R package&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The countdown to the half marathon stands at three weeks, and I&apos;ll start tapering soon. This month I&apos;ve been incorporating more subthreshold work into my training, often substituted for Pfitz&apos;s V̇O&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; max runs, which mostly left me too banged up to make meaningful progress on subsequent days. On subthreshold days I&apos;ve been working through the different time- and distance-based intervals in &lt;a href=&quot;https://lactrace.com/norwegian-singles&quot;&gt;this Norwegian Singles calculator&lt;/a&gt; to dispel monotony. I&apos;ve also tried to see how many squares on &lt;a href=&quot;https://apps.apple.com/ca/app/healthfit/id1202650514&quot;&gt;HealthFit&lt;/a&gt; I can fill in across the city grid, leading to more varied routes and a couple 5am encounters with curious local fauna.&lt;/p&gt;
&lt;p&gt;On the film side, I&apos;ve been catching up on the best (worst?) that 2025 has offered us thus far: &lt;em&gt;Thunderbolts&lt;/em&gt;, &lt;em&gt;F1&lt;/em&gt;, &lt;em&gt;Even More Jurassic World&lt;/em&gt;, and so on. Nothing much to write about, although on the bright side I dipped into some highly enjoyable slightly older fare with Kazik Radwanski&apos;s &lt;a href=&quot;https://en.wikipedia.org/wiki/Matt_and_Mara&quot;&gt;&lt;em&gt;Matt and Mara&lt;/em&gt;&lt;/a&gt;. A stellar-as-usual Deragh Campbell performance sits atop as uncomfortably specific a film as Radwanski&apos;s ever made -- recommended if you&apos;re into Canadian literary mumblecore. Next month I&apos;d like to close out Mia Hansen-Løve&apos;s filmography; I&apos;ve saved both her first and latest for just such an occasion.&lt;/p&gt;
&lt;p&gt;My phone tells me I&apos;m spending too much time reading Reddit. It&apos;s the only social media-adjacent site I browse (not counting Hacker News, which I mostly use as a link aggregator) so perhaps my six hours of screen time could be excused, and doubly so given that I&apos;ve been scouring &lt;a href=&quot;https://www.reddit.com/r/AdvancedRunning/&quot;&gt;r/AdvancedRunning&lt;/a&gt; for ideas lately. But on the whole it&apos;s mostly wasted time -- couldn&apos;t tell you what my non-research-related browsing taught me, or what I internalized from that reading. It&apos;s an idea I might want to work into that knowledge base post I&apos;m trying to finish…&lt;/p&gt;
</content:encoded></item><item><title>July 2025 update</title><link>https://danielspracklin.com/posts/update-202507/</link><guid isPermaLink="true">https://danielspracklin.com/posts/update-202507/</guid><description>state of affairs in July 2025</description><pubDate>Thu, 31 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;Here&apos;s what I&apos;ve&amp;lt;/span&amp;gt; been up to!&lt;/p&gt;
&lt;p&gt;This month I let Claude Code take the reins on website improvements to accessibility and theming. My lack of enthusiasm for the Astro framework remains palpable, so while I search for an alternative, I&apos;m happy to let Anthropic keep the lights on here. I &lt;em&gt;didn&apos;t&lt;/em&gt; farm the writing out to a machinic overlord though; I personally put together posts about &lt;a href=&quot;https://danielspracklin.com/posts/inverted-orgs/&quot;&gt;how to improve your organization&apos;s governance&lt;/a&gt; by imagining its dual, and why I &lt;a href=&quot;https://danielspracklin.com/posts/blue-prince-inverted-pyramid/&quot;&gt;really enjoyed most of &lt;em&gt;Blue Prince&lt;/em&gt;&lt;/a&gt; but felt that it didn&apos;t quite stick the landing. More posts on the way in August, including a return to a topic I&apos;d last written about nearly five years ago.&lt;/p&gt;
&lt;p&gt;After injuring my knee in early July, my upcoming half marathon has become more challenging, but I&apos;m doing my best to safely work up to higher-mileage runs. I&apos;ve been really enjoying the Boston 13s this month. The EVO SL are certainly more popular (and much bouncier, I&apos;m finding) but the speed out of the Boston 13s is incredible. It&apos;s also been unseasonably hot lately, with humidex values above 40 for quite a few days. I keep telling myself this will just make me faster come race day in September, where the mid-20s temperatures will feel positively temperate by comparison.&lt;/p&gt;
&lt;p&gt;In terms of media, it&apos;s been a quiet month. I really liked the new &lt;em&gt;Clipse&lt;/em&gt; album but didn&apos;t spend much time listening to music as I was pretty occupied with work.&lt;/p&gt;
&lt;p&gt;And that&apos;s it! A short update for the dog days of summer. Hopefully more to share in August!&lt;/p&gt;
</content:encoded></item><item><title>The inverted pyramid of Blue Prince</title><link>https://danielspracklin.com/posts/blue-prince-inverted-pyramid/</link><guid isPermaLink="true">https://danielspracklin.com/posts/blue-prince-inverted-pyramid/</guid><description>the most frustrating puzzle game since 2016</description><pubDate>Tue, 29 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Spoiler&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This review contains spoilers for &lt;em&gt;Blue Prince&lt;/em&gt; and &lt;em&gt;The Witness&lt;/em&gt;. Read at your own peril!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;In this post&amp;lt;/span&amp;gt; I&apos;ll talk about my experience with &lt;a href=&quot;https://www.blueprincegame.com&quot;&gt;&lt;em&gt;Blue Prince&lt;/em&gt;&lt;/a&gt;, one of the most beguiling adventure puzzle games I&apos;ve seen in a while. I&apos;m not a domain expert, but I do have some genre experience, from the still-excellent &lt;a href=&quot;https://classicreload.com/museum-madness.html&quot;&gt;&lt;em&gt;Museum Madness&lt;/em&gt;&lt;/a&gt; to &lt;em&gt;Myst&lt;/em&gt;, &lt;em&gt;Riven&lt;/em&gt;, and &lt;em&gt;The Witness&lt;/em&gt;. So I have a few things to say about the strengths and weaknesses of &lt;em&gt;Blue Prince&lt;/em&gt;, what makes it fun, and the inverted pyramid by which I think it ultimately falls short.&lt;/p&gt;
&lt;h2&gt;Early-game&lt;/h2&gt;
&lt;p&gt;Your goal in &lt;em&gt;Blue Prince&lt;/em&gt; is to find a mysterious room that doesn&apos;t exist, at least not officially. You do so by walking through a 5 by 9 grid representing the Mt. Holly estate, and drafting rooms at each doorway you encounter. These rooms present both features and drawbacks: some contain items that improve your runs or features that help you accomplish tasks; others cost you resources to draft; still others contain special objects but present dead-ends that constrain your path through the estate. Every room you enter costs you a step; once your daily allotment runs out, you must start drafting from scratch on a new run. But as you iterate, you&apos;ll find that things occasionally persist across runs, allowing you to accumulate an edge.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Blue Prince&lt;/em&gt; plays a dual role as both roguelike and as adventure puzzle game. This makes it an unusual vehicle with which to approach the core abductive reasoning challenge that puzzle games typically offer: sketching the bounds of the game universe&apos;s internal consistency; taking scrupulous notes; running tests and following inferential chains down rabbit-holes; and making surprising connections and working backwards to reason out &lt;em&gt;why&lt;/em&gt; they exist. But the roguelike elements encourage iteration, making it a great way to solidify your mental model for learning.&lt;/p&gt;
&lt;p&gt;If puzzle games are about learning, what do we learn in a roguelike virtual escape room? Turns out, very little about estate architecture, but a surprising amount about synergy. Aside from a few dedicated rooms containing literal puzzles, and the usual &lt;em&gt;Myst&lt;/em&gt;-style &quot;object here opens door there&quot; exploration puzzles, much of the fun in the first part of &lt;em&gt;Blue Prince&lt;/em&gt; is in hunting for and cracking meta-puzzles. What appears to be the core iterative gameplay loop of drafting and resource management actually primes you to discover a second-order gameplay loop, one centered on synergistic room and item combinations. For example, when you learn how the boiler room works, you reveal an entirely new set of interaction effects: &lt;em&gt;what rooms could I draft next to this? what happens if I route power to this weird red box? is there another use for this room that I haven&apos;t yet considered?&lt;/em&gt; The game&apos;s open-ended drafting scheme therefore encourages you to identify and internalize the control levers that govern the game&apos;s structural synergy. And this underscores the importance of RNG too; while it&apos;s true that there&apos;s plenty of randomness in &lt;em&gt;Blue Prince&lt;/em&gt;, most of it turns out to be both pretty tractable and a clever cover for the kind of emergent gameplay that makes puzzle games fun.&lt;/p&gt;
&lt;p&gt;The value of synergy amid randomness reminds me of good deckbuilders like &lt;em&gt;Dominion&lt;/em&gt;, where the replay value comes mostly from working out engine-friendly kingdom combinations, or from looking for clever ways to Groom-rush&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; your way to a 3-pile. The key is that emergence is driven by breadth of possibility: the more things you can do and the more options you can explore in any given run, the higher the likelihood that you&apos;ll combine them in unusual or unexpected ways. And &lt;em&gt;Blue Prince&lt;/em&gt; is teeming with possibility in the early stages, with 45 cells in which to draft a given room, and plenty of interaction effects that typify the game&apos;s meta-puzzles. Even if you think this isn&apos;t strictly speaking emergent so much as combinatorially explosive, the game&apos;s design is clearly in service of discovery. Starting every day in the same place might seem repetitive, but there&apos;s so much to explore that you&apos;ll only rarely draft the same rooms -- let alone the same rooms in the same places -- and by day 20, you&apos;ll probably have unlocked an entirely new way of thinking about the game.&lt;/p&gt;
&lt;p&gt;This also differentiates the game from its puzzling predecessors, of which &lt;em&gt;Myst&lt;/em&gt; and &lt;em&gt;Riven&lt;/em&gt; are probably the biggest cultural touchstones. &lt;em&gt;Riven&lt;/em&gt; in particular is one of the greatest games ever made. It&apos;s got an immersive puzzle world with an original and consistent design philosophy, plenty of lore, excellent puzzle design, and a willingness to really challenge the audience -- think of how well lore and numeracy are woven together in the &lt;em&gt;wahrk&lt;/em&gt; hangman puzzle, or how the core puzzle in &lt;em&gt;Riven&lt;/em&gt; arches expansively across the game&apos;s five islands. But at the end of the day you are limited in your options, as underscored by recent free-roam remakes that still constrain how much of the environment you can actually interact with.&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; You can&apos;t click on all that much in &lt;em&gt;Blue Prince&lt;/em&gt; either, but when you can, it has far more combinatorial implications.&lt;/p&gt;
&lt;p&gt;This makes the first half of &lt;em&gt;Blue Prince&lt;/em&gt; a great experience. You&apos;re thrust toward a challenging immediate goal, given enough leads in any given run to prevent the RNG from detracting from the fun, and teased with lore to keep you engaged as you search for the world underneath the puzzles. You&apos;ll also find yourself either taking hundreds of screenshots and writing pages of cryptic notes, or wishing you had.&lt;/p&gt;
&lt;h2&gt;Late-game&lt;/h2&gt;
&lt;p&gt;Like many puzzle games, &lt;em&gt;Blue Prince&lt;/em&gt; continues well past the formal &quot;ending&quot;, and it turns out the more complicated and therefore more fun puzzles are concentrated after the credits roll. This deepens the experience considerably, and doubly so here because the post-game puzzles are much larger, both in breadth and in time, than the &quot;main&quot; game itself. But all good things come to an end, and &lt;em&gt;Blue Prince&lt;/em&gt; eventually runs into a wall. For me this moment came at the Aries Court, although others might have felt the game&apos;s tenor change elsewhere. But my point is that once you progress past a certain part of the game, the emergent gameplay mostly gets winnowed out as a function of your progression. In this sense, the game is an inverted pyramid; alive with possibility at the start, but narrowed into increasingly specific pathways that strip away the essence of the game. This puts &lt;em&gt;Blue Prince&lt;/em&gt; back into familiar puzzling territory, which isn&apos;t an inherently bad thing, but it does mean that the magic of the first half is gone.&lt;/p&gt;
&lt;p&gt;This happens for two reasons. First, as you approach the endgame, there are fewer unsolved puzzles, meaning there&apos;s less to do on any given run, and therefore a higher chance of being foiled by RNG. In the earlier parts of the game, if your plan to pull several levers or construct a specific contraption at the workshop failed, you could always still hunt for and use a vault key, or try to figure out one of the safes, and so on. There&apos;s no such buffet when you have precisely one task left to complete. Second, the puzzles become more arcane in the late-game; like the Aries Court puzzle I mentioned earlier or the Throne Room puzzle, they tend to require a confluence of highly specific events that aren&apos;t always so natural to assemble. To its credit, the game does a better job of clue redundancy than many other puzzlers; if you miss a key piece of information in one place, you might well encounter it elsewhere. But even so, as puzzles compound into third-order meta-puzzles, you&apos;ll have a lot less to do but a lot more busywork to achieve it. Finally, the game&apos;s emphasis on progression and puzzle depth turns the first-order loop of room-drafting into a rote exercise. It can even start to feel like drafting rooms is getting in the way of the puzzles themselves. And the game&apos;s attempt to refocus your attention on the rooms by hiding late-game Blue Tent clues within them reads more like a struggle to maintain relevancy than anything else. As the unit of interest shifts from room to combinations-of-rooms, what made early runs exciting collapses into tedium at the nadir of the inverted pyramid.&lt;/p&gt;
&lt;p&gt;To illustrate the problem, I&apos;d like to compare it to another important puzzle precursor to &lt;em&gt;Blue Prince&lt;/em&gt; that&apos;s also heavy on post-game content and that takes a prickly philosophical stance on such problems. Jonathan Blow&apos;s 2016 game &lt;em&gt;The Witness&lt;/em&gt; borrows from &lt;em&gt;Myst&lt;/em&gt;&apos;s puzzling DNA too, but it&apos;s eager to carve its own thematic path, what with its cryptic audio logs and environmental mysteries. Thematically, the game is denser and murkier than &lt;em&gt;Riven&lt;/em&gt;. It embodies the spirit of learning in design -- consider the cleverly crafted tutorial areas near the apple orchard -- and in narrative; this is another game where it&apos;s possible to &quot;win&quot; without even figuring out what it&apos;s about. Getting a proper handle on the story requires considering the perspectives of the audio logs, especially the endgame logs, and asking why the game is twisting the knife with its increasingly difficult underground puzzles and environmental errands. How badly do you want to fill up that obsidian obelisk? And the challenge caps this learning journey fittingly, by requiring that you have internalized &lt;em&gt;all&lt;/em&gt; the knowledge the game has imparted. No way to win by skimming a strategy guide, you&apos;ve got to master the puzzle mechanics yourself. And if you beat the challenge,:marginnote[I couldn&apos;t, although I like to pretend it&apos;s because I was using a controller and wasn&apos;t a skill issue.] the game offers you the wry pleasure of… watching an hour-long video interrogating humanity&apos;s obsession with synchronicity. One view of &lt;em&gt;The Witness&lt;/em&gt;&apos; payoff is that there is no payoff, a disheartening &lt;a href=&quot;https://en.wikipedia.org/wiki/Picardy_third&quot;&gt;Picardy third&lt;/a&gt; if there ever was one.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Witness&lt;/em&gt; is an incredible game and the references I&apos;ve seen to &lt;em&gt;Blue Prince&lt;/em&gt; as &quot;&lt;em&gt;Witness&lt;/em&gt;-like&quot; are surely meant as a compliment. But I&apos;m not sure that the comparison holds water. It&apos;s true that both operate in a world weirdly devoid of human activity, both share some obvious design cues, both traffic in environmental secrets and feature substantial amounts of post-game content that&apos;s critical to understanding the narrative, and so on. But there are major:marginnote[&lt;em&gt;Blue Prince&lt;/em&gt;&apos;s obsession with corny puns and wordplay is one of its worst points. You might have expected it from the game&apos;s title, but they pepper the gameplay too, frequently veering into dad-joke territory.] differences between the two.&lt;/p&gt;
&lt;p&gt;In &lt;em&gt;The Witness&lt;/em&gt;, once you power up the elevator, you find yourself slowly returning to the start of the game, the puzzles undoing themselves and the skeleton of the cab gradually fading into nothingness. And at the moment of zen, when you&apos;re placed back at the game&apos;s starting point, you immediately notice the environmental puzzle you didn&apos;t see when you first started the game. Your learning journey has led you to see the world from a more nuanced perspective.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; &lt;em&gt;Blue Prince&lt;/em&gt; chooses a completely different thematic path here, going for puzzle depth instead of intellectual depth. Indeed, the puzzles are so heavily layered that the endgame objectives require techniques that a newcomer would never stumble across in their first few runs. You can learn the lingo if you play long enough, but despite starting in the same place every run, you never really &lt;em&gt;restart&lt;/em&gt; the game. It&apos;s the antithesis of &lt;em&gt;The Witness&lt;/em&gt;&apos; philosophy.&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; So yes, you&apos;re learning as you sharpen your problem-solving abilities over time, but you&apos;re never asked to turn the knife back on itself or question why you&apos;re so obsessed about finding the estate&apos;s secrets in the first place. It is just assumed that you&apos;ll keep playing until you complete all the challenges and discover all the secrets. This is precisely the kind of thinking that &lt;em&gt;The Witness&lt;/em&gt; critiques.&lt;/p&gt;
&lt;p&gt;And that&apos;s the game&apos;s core problem. Eventually the game&apos;s artifice swallows the estate whole. It becomes a fake place full of metamysteries that stretch credulity,:marginnote[I&apos;m thinking of the Atelier in particular here.] and that&apos;s hard to reconcile with the portrait of the estate-owner whom you saw as mere bequestor at the start. &lt;em&gt;The Witness&lt;/em&gt; is full of artifice too -- many facets of the island are never made explicitly clear to us -- but this is deliberately so, in service of a specific philosophical point. You might find it edgy or unnecessarily cryptic, but it&apos;s consistently articulated. I can advance no such defence for &lt;em&gt;Blue Prince&lt;/em&gt;; it boasts substantial depth, but by the end the game has nothing substantive to say. A frustrating ending to what&apos;s otherwise a great puzzle game.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://wiki.dominionstrategy.com/index.php/Groom&quot;&gt;Groom&lt;/a&gt; on the Dominion Strategy Wiki. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Although I didn&apos;t play the 2024 reimagining of &lt;em&gt;Riven&lt;/em&gt;, I watched a Let&apos;s Play and was disappointed to see that several puzzles had been simplified considerably. I can appreciate wanting to give longtime fans the experience of playing it as if for the first time, but to the extent that the puzzles were softened to broaden the game&apos;s appeal, the 2024 version reflects poorly on the modern audience&apos;s critical thinking skills. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;That&apos;s one thing that annoys me about many implementations of NG+; you start again with some increased or faster-levelling power set, but there&apos;s nothing fundamentally new or different about your experience. &lt;em&gt;The Witness&lt;/em&gt;&apos; hotel ending pokes fun at this by showing you the &lt;em&gt;Tetris&lt;/em&gt;-like &quot;I can see it in my sleep&quot; tricks that such experiences can play on you. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The most anti-&lt;em&gt;Witness&lt;/em&gt; part of &lt;em&gt;Blue Prince&lt;/em&gt; is probably the mechanism that lets you import trophies from other runs into your one &quot;true&quot; run. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Inverted orgs</title><link>https://danielspracklin.com/posts/inverted-orgs/</link><guid isPermaLink="true">https://danielspracklin.com/posts/inverted-orgs/</guid><description>Or why governance equals scaling</description><pubDate>Sat, 19 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This post distills some thoughts on governance. I&apos;m not speaking for my employer and they don&apos;t necessarily endorse what I write here.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Images of organization&lt;/h2&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;While writing my&amp;lt;/span&amp;gt; &lt;a href=&quot;https://danielspracklin.com/posts/streaming/&quot;&gt;recent post on water metaphors&lt;/a&gt;, having decided to take an essentially Lakoffian approach to the topic, I did some research on different conceptual metaphors for the organization. My main goals were to see whether applying &lt;em&gt;fūkeiron&lt;/em&gt; to the corporate setting was at all new or innovative, and whether anyone had written about the water metaphor in the workplace. During my research I skimmed through a few books, including Henry Mintzberg&apos;s &lt;em&gt;The Structuring of Organizations&lt;/em&gt;, Stafford Beer&apos;s &lt;em&gt;Diagnosing the System&lt;/em&gt;, and Gareth Morgan&apos;s &lt;em&gt;Images of Organization&lt;/em&gt;. This last entry was particularly relevant because it traffics extensively in metaphor; in fact, Morgan basically argues that the &lt;em&gt;entire domain&lt;/em&gt; of org theory is extended metaphor. He presents eight ways of seeing organizations: as machines, brains, political systems, and so on, toward less mainstream views as prisons or instruments of domination. The most relevant part for my blog post was in the chapter on &quot;organization as flux and transformation&quot;, but it didn&apos;t end up treating the water metaphor or anything adjacent to &lt;em&gt;fūkeiron&lt;/em&gt;, so I was home free.&lt;/p&gt;
&lt;p&gt;Metaphors are great, although much like models they&apos;re all wrong in some way, and you can only hope to squeeze some usefulness out of them without overindexing on their failure modes. Morgan recognizes this in &lt;em&gt;Images of Organization&lt;/em&gt;, pointing out that different conceptual metaphors highlight key parts of the organization&apos;s functioning but distort others. So the way you see things limits &lt;em&gt;what&lt;/em&gt; you can see. I also found that Stafford Beer was particularly pessimistic about the side effects of such thinking, writing the following in &lt;em&gt;Decision and Control&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;… the methodology seems to depend on the examination of similes, which is well known to be dangerous and highly suspect. It is all very well to say that the control system of an industrial company is &apos;like&apos; the central nervous system in the human body: but what does this mean? At the worst, this is a glib literary metaphor; at the best, perhaps, the analogy will hold a certain amount of water, but even then it may be of no real use. Everyone knows, in particular, that even when a comparison is basically sound, it is all too easy to employ it illegitimately…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So Beer sees these kinds of metaphors as dangerous tools of limited application that the masses will wield recklessly. On the other hand, Morgan strikes a more optimistic tone:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Metaphors lead to new metaphors, creating a mosaic of competing and complementary insights… When you recognize that your theories and insights are metaphorical, you have to approach the process in an open-ended way. You have to recognize your limitations and find ways of going beyond them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I like Morgan&apos;s pragmatic take here, but it&apos;s of course true that metaphors can go off the rails quickly.&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; So is there any value to the organizational metaphor? If there is, it would need to recognize the inherent limitation of metaphor, but also encourage us to think creatively about our situation to transcend our constraints.&lt;/p&gt;
&lt;h2&gt;The inverted metaphor&lt;/h2&gt;
&lt;p&gt;Luckily there&apos;s a really specific kind of metaphor that virtually nobody&apos;s tempted to read too much into or uncritically adopt as the lynchpin of their PR platform. But it&apos;s also creative enough to get you to think differently about your context. The idea is to imagine the conditions under which an object might be its own logical inverse:&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describe the current state of your organization&apos;s systems or established practices: its governance, the way it runs meetings, its onboarding processes or performance review scheme, and so on&lt;/li&gt;
&lt;li&gt;Imagine the exact opposite of that state. How would it operate? What nonsensical, ridiculous, or illogical results might you expect? What failure modes do you foresee?&lt;/li&gt;
&lt;li&gt;Use these insights to refine your view of the current state&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We use this approach &lt;em&gt;not&lt;/em&gt; to make a trite contrarian point, but rather to poke at the limitations of our metaphors, therefore creating the conditions of possibility for new metaphors -- and new ways of seeing the organization itself. It&apos;s a bit like a pre-mortem for your org&apos;s design, except that pre-mortems focus on specific known or deducible problems, whereas the inverted metaphor reveals hidden assumptions. It&apos;s also different from dialectical approaches in that we&apos;re not necessarily interested in the inversion for its own sake, or in synthesizing the opposing points of view.&lt;/p&gt;
&lt;p&gt;Inversion also helps resolve the tension between Morgan&apos;s and Beer&apos;s competing views on metaphor: since we use a pure hypothetical as our starting point, we&apos;re less likely to accept it uncritically or to end up reciting meaningless similes, as Beer fears. And since the inverted metaphor helps expose ideas that aren&apos;t always surfaced by direct analysis -- for example, seeing what the original metaphor was designed to achieve, or perhaps what it should have been designed to prevent or impede -- it&apos;s the kind of open-ended approach that Morgan prefers. Even if you discard most of your findings about the inverted org, the thinking process acts as a Chesterton&apos;s fence around your original metaphors.&lt;/p&gt;
&lt;p&gt;I planted a seed of this metaphor at the end of my last post, where I suggested building a room where the &lt;em&gt;minimum&lt;/em&gt; volume had to be 70 dB. On its face, this is a pretty silly idea; it&apos;s either unenforceable (imagine pitching such a policy to your peers) or annoying to operationalize. But I think there&apos;s something sticky about the sounds we sanction, tolerate, and encourage in the workplace. For example, lunch rooms are places with no formal noise threshold rules, and yet they&apos;re always pleasantly loud, what with microwaves beeping and dishes being washed and multiple lunchtime conversations. In this sense, a lunch room is an emergent -- even if accidental -- way of disrupting the fixed metaphor of &quot;quiet room&quot; office culture, and that&apos;s thrown into relief very clearly once you start thinking about the inverse of a quiet room. It also hints at what a &quot;quiet room&quot; is actually doing: enforcing a particular mode of working through environmental design.&lt;/p&gt;
&lt;p&gt;Now I don&apos;t want to push this specific example &lt;em&gt;too&lt;/em&gt; far; lunch rooms are usually pretty bland spaces that recreate the communal environment but fail to capture any of the intangibles that make a night out at a nice restaurant, well, &lt;em&gt;nice&lt;/em&gt;. But even if lunch rooms don&apos;t carry any special organizational-reshaping power, they help reveal why quiet rooms exist in the first place, and they illustrate how we might invert metaphor-space in search of new ways to conceptualize our workplaces.&lt;/p&gt;
&lt;h2&gt;Antigovernance&lt;/h2&gt;
&lt;p&gt;Where can we work toward more elegant organizational metaphors with the inverted approach? The first example that comes to mind is &lt;em&gt;antigovernance&lt;/em&gt;. If governance is about concentrating oversight or decision-making, then antigovernance would distribute them in emergent ways. It would probably prioritize actions that flatten the network topology. Decisions would be made by consensus, or at the very least by some flavour of supermajority. Spending authority would flow downward, and instead of imposing additional controls on employees, we&apos;d probably worry more about how much hard power is accreting to managers. The gap between doer and decider would tend to zero.&lt;/p&gt;
&lt;p&gt;You might be thinking that antigovernance sounds like a chaotic mess in the corporate context. And it might well be! But that&apos;s not germane here; we don&apos;t care if flat org charts actually work more effectively than command-and-control hierarchies, or however else you choose to distinguish between governance and its inverse. What we care about is establishing the &lt;em&gt;sine qua non&lt;/em&gt; of governance by looking at what it isn&apos;t.&lt;/p&gt;
&lt;p&gt;Antigovernance indeed gets pretty messy at some points. First, consensus-building is challenging.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; Generally speaking, a lack of consensus can be a symptom of unclear responsibility for decision-making and hidden or unconsulted domain expertise. So if we wanted to build an organization founded on antigovernance, we&apos;d need to find ways to keep decision-making from derailing and to set clear expectations of participants. But if we phrase this differently, we get a completely new insight: governance is only useful if it&apos;s fast and crystal-clear about problem ownership. Otherwise it&apos;s no better than the alternative!&lt;/p&gt;
&lt;p&gt;Next, it&apos;s not clear how to make effective strategic decisions in an antigoverned organization when you&apos;re used to a centrally planned model. Maybe everyone spends a bit too much money, leading to collectively irrational budget decisions, or maybe there are tragedy of the commons effects spurred on by misaligned personal incentives. The consensus challenge I described earlier can also lead to contradictory decision-making over time, especially if the composition of the consensus body evolves. But if these are entirely predictable failure modes of antigovernance, then good governance must necessarily process information effectively to differentiate itself from its inverse. In this mode, governance should be the voice of your organization&apos;s memory.&lt;/p&gt;
&lt;p&gt;Third, in decentralized structures, keeping things moving tends to be particularly challenging when there are lots of participants. You know this if you&apos;ve been in a meeting with more than 10 participants or on an email chain with forty names in CC. But conversely this reveals governance&apos;s key role as a scaling accelerator; when you exceed Dunbar&apos;s number, you need governance not because it imposes control, but rather because it&apos;s the most effective way to scale decision-making.&lt;/p&gt;
&lt;p&gt;So the inverted metaphor helps surface a new conception of good governance: an efficient, context-rich decision-scaling accelerator. This is radically different from a first-principles definition, and it offers a middle path between Morgan&apos;s embrace of metaphor and Beer&apos;s skepticism by safeguarding against metaphor misuse and by uncovering hidden assumptions through binary opposition. In this sense, the method treats organizational metaphors as provisional tools, just as Morgan suggests.&lt;/p&gt;
&lt;p&gt;Better metaphors improve our line of sight, but they don&apos;t necessarily install it in any meaningful sense. So what if we applied the inverted metaphor to something more concrete, like organizational design theory itself, as an experimental critique of management consulting techniques? This is what I plan to explore in my next post; stay tuned!&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The corporation as &quot;family&quot; is probably the best example; it grabs the baton from the idea of legal personhood, then runs in the wrong direction entirely. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In math we have &lt;a href=&quot;https://en.wikipedia.org/wiki/Involution_(mathematics)&quot;&gt;involutory functions&lt;/a&gt; that are their own inverse. This is the idea I originally wanted to use here, although technically we aren&apos;t actually going to imagine how an organization could be both itself and its inverse &lt;em&gt;at the same time&lt;/em&gt;. So it felt too much like equivocation to use that terminology, even if expecting perfect correspondence between signifiers in a piece on metaphor is a bit much. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you&apos;ve spent much time on Wikipedia, you&apos;ll know that &lt;a href=&quot;https://en.wikipedia.org/wiki/Wikipedia:Requests_for_comment&quot;&gt;RFCs&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Wikipedia:Centralized_discussion&quot;&gt;CENT&lt;/a&gt;, and the like can be drawn-out affairs. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>June 2025 update</title><link>https://danielspracklin.com/posts/update-202506/</link><guid isPermaLink="true">https://danielspracklin.com/posts/update-202506/</guid><description>state of affairs in June 2025</description><pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;Here&apos;s what I&apos;ve&amp;lt;/span&amp;gt; been up to this month!&lt;/p&gt;
&lt;h2&gt;Website&lt;/h2&gt;
&lt;p&gt;More behind-the-scenes tweaks to the site in June, including CSS styling and fixes to the RSS (which wasn&apos;t working at all; probably user error). I also want to make a new icon at some point, but my ability to develop convincing path-based drawings is lacking.&lt;/p&gt;
&lt;p&gt;Can&apos;t say I&apos;m enjoying the Javascript experience, and I&apos;m already thinking about switching SSGs, like every tinkerer who maintains a website. Or maybe I&apos;ll even go bare-bones HTML and CSS. Claude has been good at writing workable Javascript, but that doesn&apos;t help me internalize what I&apos;m committing or distill it into long-term knowledge.&lt;/p&gt;
&lt;p&gt;This month I published posts about how much I&apos;m enjoying Kagi, finding better ways to schedule meetings, and why water metaphors are both oversimplified and surprisingly useful for creative org design thinking. These were fun to write, but the lengthy editing process impeded me from getting to that corporate governance piece I alluded to in last month&apos;s update.&lt;/p&gt;
&lt;h2&gt;Life&lt;/h2&gt;
&lt;p&gt;I rigged up a script that sends me a push notification if specific cat breeds are listed on the local humane society&apos;s website. I&apos;d adopt the first one I saw if my allergies allowed it; alas I&apos;m limited to hypoallergenic breeds.&lt;/p&gt;
&lt;p&gt;I&apos;m working through Pfitzinger&apos;s &lt;em&gt;Faster Road Running&lt;/em&gt; and adopting his &lt;code&gt;12/63&lt;/code&gt; half-marathon training plan. I&apos;m already seeing endurance improvements, but the time commitment is prodigious. There&apos;s &lt;em&gt;slightly&lt;/em&gt; insufficient time in the day to run this much and do everything else I&apos;d like to do -- and write about it all. The irony of June having the longest days of the year is not lost on me!&lt;/p&gt;
&lt;h2&gt;Arts&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Blue Prince&lt;/em&gt; is out, it&apos;s getting rave reviews, and it&apos;s free on PS+ Extra. The game has been occupying most of my spare brain cycles this week and I&apos;m working on a separate piece on how surprisingly deep it is. Much like &lt;em&gt;The Witness&lt;/em&gt;, the post-game seems to be where the fun truly begins.&lt;/p&gt;
&lt;p&gt;Otherwise quiet on the media front this month. I put on a bunch of Steve Martin movies in the background, and would like to catch &lt;em&gt;Black Bag&lt;/em&gt; when I find 90 minutes. Soderbergh&apos;s filmography is full of feints and digressions; looking forward to finding out whether this one is on par with his pre-&quot;retirement&quot; work.&lt;/p&gt;
&lt;p&gt;Reading-wise, I&apos;ve been going through Clara Hughes-Johnson&apos;s &lt;em&gt;Scaling People&lt;/em&gt; again. It&apos;s full of practical wisdom for when you need to define your org&apos;s operating system, and I&apos;ve been borrowing from it liberally for work matters. Yet another vote of confidence in the high quality of Stripe Press&apos; publications after the excellent &lt;em&gt;The Dream Machine&lt;/em&gt;, &lt;em&gt;The Art of Doing Science and Engineering&lt;/em&gt;, and &lt;em&gt;An Elegant Puzzle&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;On the indie web I came across &lt;a href=&quot;https://timharek.no&quot;&gt;timharek.no&lt;/a&gt; and enjoyed it considerably. Tim also maintains a &lt;a href=&quot;https://timharek.no/blogroll/&quot;&gt;comprehensive blog roll&lt;/a&gt; that I&apos;m hoping to systematically work through in the coming weeks.&lt;/p&gt;
&lt;p&gt;Not much happening in the music sphere this month. I powered up the Eurorack case once or twice but didn&apos;t patch anything of substance.&lt;/p&gt;
</content:encoded></item><item><title>Streaming</title><link>https://danielspracklin.com/posts/streaming/</link><guid isPermaLink="true">https://danielspracklin.com/posts/streaming/</guid><description>on water metaphors</description><pubDate>Tue, 24 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This post distills my views on organizational culture. I&apos;m not speaking for my employer and they don&apos;t necessarily endorse what I write here.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Mixed metaphors&lt;/h2&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;The other day&amp;lt;/span&amp;gt; I read a good blog post by Kevin Lawler called &lt;a href=&quot;https://kevinlawler.com/streams&quot;&gt;&quot;Streams&quot;&lt;/a&gt;, about how streams accumulate, how subscription services have consumed the internet, and further non-obvious insights. This got me thinking about how many of our work metaphors are actually &lt;em&gt;water-related&lt;/em&gt;. We have the idea of stream-aligned teams:marginnote[The &quot;you build it, you own it&quot; groups responsible for the entire product lifecycle in &lt;em&gt;Team Topologies&lt;/em&gt;.] and fast flow, the speed at which value is created. And value is treated like a liquid too, in value stream mapping and in waterfall project management. Your data engineers are upstream and your users are downstream; my mistakes have spillover effects. And of course we know and love all the streaming data that occupies our work days and sometimes our evening leisure time too.&lt;/p&gt;
&lt;p&gt;Why does this matter? Our metaphors hint at how we see the world because they borrow from our experience to make sense of more complicated phenomena. I tend to go for audio metaphors:marginnote[&quot;Sounds like&quot; and &quot;sounds good&quot; and &quot;on the same wavelength&quot;.] and you might be tempted to draw some weak inferences&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; about me from that. Well, we can do the same with conceptual water metaphors.:marginnote[WORK IS WATER, as &lt;a href=&quot;https://en.wikipedia.org/wiki/George_Lakoff&quot;&gt;Lakoff&lt;/a&gt; might write.] They feel natural for obvious reasons -- after all, we&apos;re surrounded by the stuff -- but I think they say more about the forces that constructed the metaphors than anything else. If we choose to view them a little differently, maybe we can expose the highest leverage control points, letting us effect positive organizational change.&lt;/p&gt;
&lt;h2&gt;Value streams, lazy rivers, and &lt;em&gt;fūkeiron&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Let&apos;s dive into the example of value stream mapping. This is a “sequence of activities necessary to deliver… [something] to a customer”,&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; a directed temporal flow of materials and goods that ends with the buyer, voyageur-style. This is safe, pleasant, and exactly backwards. I saw a really impressive waterfall last month, and when I think back to that moment, what struck me was the sheer force of the thing. It&apos;s &lt;em&gt;unsettling&lt;/em&gt; to think that the stuff you drink every morning has enough directed energy to casually kill you. But none of that raw momentum shows up in the value stream signifier. It also misses out on the dynamical behaviour of rivers; the way they cut through earth to form new channels, to deposit sediment and create new land, and to generally do all manner of unexpected, unintuitive things.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; This dynamic richness is also curiously absent from virtually all the other water metaphors I mentioned earlier.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/psychohydrography.webp&quot; alt=&quot;Psychohydrography&quot; /&gt;:marginnote[Humanity seeks to bend the chaos of water to its industrial will in Peter Bo Rappmund&apos;s &lt;em&gt;Psychohydrography&lt;/em&gt; (2010).]&lt;/p&gt;
&lt;p&gt;Now, mapping the Raging Deathtrap Rapids doesn&apos;t have much of a ring to it, so maybe the &quot;stream&quot; theory of value was always destined to win out over such a chaotic metaphor. And if all conceptual metaphors are necessarily incomplete to begin with, what&apos;s so bad about seeing your supply chain as a lazy river? Wouldn&apos;t any other conception fail in some other way? Maybe so, but the sanitized water metaphors we&apos;re looking at conceal a &lt;a href=&quot;https://danielspracklin.com/posts/stepwise-traps-limit-continuous-improvement/&quot;&gt;reifying force&lt;/a&gt; that&apos;s laundered through the ordinary meaning of the process diagram. In other words, they don&apos;t show us the true locus of power in the value equation. To make this more explicit, consider your favourite canyon. It&apos;s been shaped residually over aeons by patient hydrological forces. But it&apos;s the &lt;em&gt;absence&lt;/em&gt; of the river that makes the canyon impressive. Nobody would blink twice if the Grand Canyon were a giant lake!&lt;/p&gt;
&lt;p&gt;Grappling with objects through their absence is nothing new&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; and I don&apos;t pretend it&apos;s an innovation to apply it here. But I want to focus on one particular deployment of absence-thought that arose through my interest in film, completely independently of org design theory. It&apos;s also particularly rich here, both for its natural alignment with known design principles and for its environmental bent. It emerged in 1960s Japanese film; they called it &lt;em&gt;fūkeiron&lt;/em&gt;, the landscape theory. The filmmakers would invert the camera, shooting landscapes without humans, both in direct response to more popular documentary approaches of the time, and as a technique to reveal the environmental power structures that shaped the very people their cameras elided. The best-known work in the &lt;em&gt;fūkeiron&lt;/em&gt; tradition is probably &lt;em&gt;AKA Serial Killer&lt;/em&gt;, a documentary that&apos;s more interested in showing train tracks and neighbourhoods than the titular spree killer himself.&lt;sup&gt;&lt;a href=&quot;#fn5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; Yet as we watch the landscape pass by travelogue-style, its spatial logic comes alive, and we start to see how it prefigures -- and maybe even predetermines, if you buy the director&apos;s view that the &quot;image of power takes the form of the urban landscape&quot;&lt;sup&gt;&lt;a href=&quot;#fn6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; -- the social relations that shaped the murderer&apos;s path. This is seeing the river&apos;s force through the canyon&apos;s form.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/aka.webp&quot; alt=&quot;AKA Serial Killer&quot; /&gt;:marginnote[The urban landscape on display in Adachi&apos;s &lt;em&gt;AKA Serial Killer&lt;/em&gt; (1969)]&lt;/p&gt;
&lt;h2&gt;Org mode&lt;/h2&gt;
&lt;p&gt;Now the film was intended to propagate a highly localized political critique that isn&apos;t relevant for my purposes here, making it, like so many others, an imperfect metaphor.:marginnote[I also wonder if &lt;em&gt;fūkeiron&lt;/em&gt; is of a school of hard-determinism that&apos;s hard to reconcile with the creative act. Eric Baudelaire, whom I think is the leading modern experimentalist in this area, seems to agree in his interview with Benoît Rossel, quoted above. See also his 2011 film &lt;a href=&quot;https://www.moma.org/collection/works/193142&quot;&gt;&lt;em&gt;The Anabasis of May and Fusako Shigenobu&lt;/em&gt;&lt;/a&gt;; highly recommended for its elegiac view of memory via landscape.] But even so, I think its landscape technique has rich applications in the organizational world. If you think back to Conway&apos;s law, the idea that communication predetermines design is cognate with how the environment shapes social factors in &lt;em&gt;fūkeiron&lt;/em&gt;. Both suggest prestructuring forces that mould human behaviour, whether in the &lt;em&gt;omise&lt;/em&gt; or the office.&lt;/p&gt;
&lt;p&gt;In this metaphor, the systems thinker becomes the documentarian -- just swap the camera for a map of the organization -- flipping their tools 180 degrees to chart the environmental structures that drive workplace causality. And what does that organizational landscape look like? It&apos;s obviously physical: we have floor plans and conference rooms and collaborative spaces and break rooms and quiet areas, all of which are built to enable specific activities -- and therefore to discourage others, even if not explicitly. The cynic might point to the Taylorist open plan as a more extreme environmental example. There&apos;s a rhythm to the temporal landscape too; think of sprint cycles, the cadence of recurring meetings, the 40-hour work week, and the like. And in proper Conway fashion, communication pathways also thread the countryside: emails, group chats, the DM antipattern.&lt;sup&gt;&lt;a href=&quot;#fn7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt; When we apply &lt;em&gt;fūkeiron&lt;/em&gt; cartography to this terrain, we see the possibility of new dynamics at work. For instance, value might just be a boardroom and a couple hallways,&lt;sup&gt;&lt;a href=&quot;#fn8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt; some status updates passing through the shadow org chart, two pizzas,&lt;sup&gt;&lt;a href=&quot;#fn9&quot;&gt;[9]&lt;/a&gt;&lt;/sup&gt; and a few Slack channels in a trench coat.&lt;/p&gt;
&lt;p&gt;This way of documenting calls to mind a scrying pool more than a value stream. But it does a great job of exposing control levers that were invisible in the water metaphors we started with. It also gives us the opportunity to steelman &quot;we&apos;re always done it this way&quot;, which is now a descriptively true statement of how value is produced! This means it&apos;s not dissimilar to Stafford Beer&apos;s point that &lt;a href=&quot;https://en.wikipedia.org/wiki/The_purpose_of_a_system_is_what_it_does&quot;&gt;the purpose of a system is what it does&lt;/a&gt;; if we&apos;ve always operated neatly within the landscape, then maybe the resulting output reflects the real intent of the system. If the steelman fails, it&apos;s because another purpose of a system is to oversimplify its own causal diagram until these levers are all but hidden, meaning it becomes harder to parse exactly &lt;em&gt;why&lt;/em&gt; we&apos;ve always done things a certain way. Another way to understand this is through Beer&apos;s &lt;a href=&quot;https://en.wikipedia.org/wiki/Viable_system_model&quot;&gt;viable system model&lt;/a&gt;. The System Three management layer crafts purpose statements, but these must be mapped into the lower, more operational System One before they can be executed. This translation inevitably simplifies the diagram by framing it as if System One is &lt;em&gt;all that exists&lt;/em&gt;.:marginnote[This also explains why org charts&apos; reporting relationships are inevitably so cleanly directed. Certainty and predictability are valuable for many good reasons, but after the inflection point they begin to lend themselves to less virtuous ends, for &lt;em&gt;Seeing Like a State&lt;/em&gt; reasons.] But the landscape theory opens up a creative angle with which to find these levers anew.&lt;/p&gt;
&lt;p&gt;Instead of optimizing the value stream, what would happen if we reshaped the canyon? Changed how conference rooms were booked? Moved the coffee machine to a different floor? Built a room where the &lt;em&gt;minimum&lt;/em&gt; volume was 70 dB? Diffed a map of the shadow org chart against its formal counterpart? Removed email? Gave juniors expanded editing perms on strategy documents? How would that change your landscape?&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Linguistic_relativity&quot;&gt;Linguistic relativity&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gartner: &lt;a href=&quot;https://www.gartner.com/en/information-technology/glossary/value-stream&quot;&gt;Value stream&lt;/a&gt;. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Hydrogeomorphology&quot;&gt;Hydrogeomorphology&lt;/a&gt;. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Here I&apos;m thinking specifically of John Cage and &lt;em&gt;Waiting for Godot&lt;/em&gt;, but there are probably dozens of even better examples. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;See &lt;a href=&quot;https://4a.com.au/articles/the-hills-have-ideologies-the-fukeiron-tradition-in-japanese-landscape-cinema/&quot;&gt;Conor Bateman&apos;s article on the film&lt;/a&gt; for further detail. &lt;a href=&quot;#fnref5&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Benoît Rossel, &quot;Eric Baudelaire&quot;, BOMB 140, Summer 2017. &lt;a href=&quot;#fnref6&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.newschematic.org/blog/dms-are-an-antipattern/&quot;&gt;&quot;DM&apos;s are an Anti-Pattern&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref7&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Joel Spolsky, &lt;a href=&quot;https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/&quot;&gt;&quot;The Joel Test: 12 Steps to Better Code&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref8&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://aws.amazon.com/executive-insights/content/amazon-two-pizza-team/&quot;&gt;Powering Innovation and Speed with Amazon’s Two-Pizza Teams&lt;/a&gt;. &lt;a href=&quot;#fnref9&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Claude is a better writer than I am</title><link>https://danielspracklin.com/posts/claude-better-writer/</link><guid isPermaLink="true">https://danielspracklin.com/posts/claude-better-writer/</guid><description>it&apos;s the end of the world and i feel fine</description><pubDate>Fri, 20 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I don&apos;t pretend&amp;lt;/span&amp;gt; to be a spectacular writer. Haven&apos;t published anything substantial in my life, and probably won&apos;t ever. Hell, I don&apos;t even post much on here. But I always try my best, and if I may indulge in self-assessment, I&apos;ve gotta be somewhere above the fiftieth percentile in terms of writing quality. (If not, I&apos;m in deep trouble; &quot;&lt;em&gt;thinking begins with writing&lt;/em&gt;&quot; is my second-favourite quote of all time.)&lt;/p&gt;
&lt;p&gt;LLMs don&apos;t write on my behalf; every word on this blog is either a direct quote or direct from my brain to your eyes (or ears, if you&apos;re using a screen reader). This is for a couple reasons, chief among them that my writing style tends to be dense and academic, I like it that way, and on the other hand I haven&apos;t much liked LLMs&apos; historical attempts in that register. Now, I use LLMs all the time for other things, including as a kind of hyper-Oblique Strategy. One of my favourite tricks is to ask Claude to bridge two completely unrelated ideas as seamlessly as possible. Sometimes I&apos;ll do philosophy (&lt;em&gt;tell me what Lauren Berlant and St. Augustine might say about corporate governance&lt;/em&gt;), or maybe I&apos;ll insist that it play-act as a logician. The results aren&apos;t always usable, but it&apos;s fun to see what you&apos;ll get and instructive to predict the directionality of the response. And sometimes the connexion point Claude identifies turns out to have some novel intellectual currency or orthopraxic value. But the point is (and my line has always been) that I don&apos;t let LLMs &lt;em&gt;write&lt;/em&gt; for me, and typically I keep my longer-form text out of the prompt window entirely.&lt;/p&gt;
&lt;p&gt;I gave up on that tonight by feeding a mostly-finished Markdown file into Claude Sonnet 4, asking it to critique the quality of my ideas and to pick five sentences to rework in depth. Call it degenerate curiosity. The response was witheringly unflowery, thanks to the killer system prompt I&apos;ve been using lately. But the heartbreaker was that Claude&apos;s suggested fixes were significantly better than what I would&apos;ve dreamed up after twenty minutes of pacing and head-scratching and backspacing. (No examples, sorry; don&apos;t want to spoil my forthcoming work!) I didn&apos;t end up incorporating them whole cloth into my post -- still too much of an AI smell for my liking, plus my authorial voice pathologically refuses to be diluted -- so I&apos;m still the dominant creative force behind the post. But to the extent that editing sharpens writing, I can&apos;t unthink that it&apos;s doing a better job than I could have.&lt;/p&gt;
&lt;p&gt;Finally, as a second-order metacognitive experiment, I ran &lt;em&gt;this&lt;/em&gt; post into Claude too. &quot;It models the distinction it advocates&quot;, quoth the machine. Hey, I&apos;ll take it.&lt;/p&gt;
</content:encoded></item><item><title>Calendar AI hasn&apos;t solved my problem (yet)</title><link>https://danielspracklin.com/posts/ai-calendar-wrong-problem/</link><guid isPermaLink="true">https://danielspracklin.com/posts/ai-calendar-wrong-problem/</guid><description>what AI in my calendar can do, and not do</description><pubDate>Sun, 08 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This post distills personal views on meetings, some of which reflect my observations about the workplace. I&apos;m not speaking for my employer and they don&apos;t necessarily endorse what I write here.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I&apos;ve been thinking&amp;lt;/span&amp;gt; a lot about AI tools in meetings, probably due to lingering discontent with the reinforcing feedback loop of platform decay.&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; For example, Apple was just announced to have acquired an AI calendar app&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; that will surely reappear at tomorrow&apos;s WWDC, Copilot offers lots of calendar integrations, and a quick Kagi search reveals dozens more AI-enabled assistants that promise to book meetings faster, handle conflicts automatically, and generally optimize my work day. But I don&apos;t think these tools are solving the right problem for me!&lt;/p&gt;
&lt;p&gt;First, I don&apos;t want a digital assistant that makes it easier to manage meetings, I want one with sufficiently aligned autonomy to know when &lt;em&gt;not&lt;/em&gt; to have one in the first place.:marginnote[As a leader, you can fact-find in many ways, each with effects of different magnitude on system equilibrium. Calling a meeting is an official act that signals a certain blunt-force finality, and these optics change how participants think about, talk about, and do the work you want to discuss. This is a useful foil to the &quot;see risk, book meeting&quot; strategy that you&apos;ll often see deployed on autopilot. Plus, over-communication is a failure mode.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; And second, these AI applications make it easy to book meetings just in time,&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; so it looks like they solve a critical bottleneck for the people in 30+ hours of meetings every week. But &lt;em&gt;The Principles of Product Development Flow&lt;/em&gt; offers a fun counterargument:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;… it is important to go beyond the popular but simplistic idea that the capacity of the bottleneck controls system flow. In fact, flow through a bottleneck is affected strongly by the process that precedes the bottleneck. The upstream process determines the variation in the arrival rate at the bottleneck, and this affects the queue. Managing the process upstream of the bottleneck is a valuable tool for improving flow at the bottleneck.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So we shouldn&apos;t merely stop at the meeting bottleneck, but rather look upstream for higher-leverage process improvements. And what&apos;s upstream of a meeting request? Precisely all the unspoken, unwritten context that&apos;s hard to feed an AI assistant! For instance, it might not capture the &lt;a href=&quot;https://en.wikipedia.org/wiki/Preference_falsification&quot;&gt;preference falsification&lt;/a&gt; inherent in business relationships or the adverse selection caused by the resulting social capital dynamics;:marginnote[If you&apos;re honest with yourself, you probably don’t want to meet with everyone who wants to meet with you! And the converse holds too, if you&apos;re being extra honest.] how many “could’ve been an email” meetings you&apos;ve been party to recently; situations where your counterparty hasn’t Read The Manual; or times where nobody&apos;s really sure why there&apos;s a meeting in the first place. This is all stuff &lt;em&gt;I&lt;/em&gt; think about sometimes, but how do I get the AI assistant to recognize it?&lt;/p&gt;
&lt;p&gt;While we wait for AI to catch up, what I&apos;d really like is a Rothian&lt;sup&gt;&lt;a href=&quot;#fn5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; clearinghouse that matches meeting requestors with subject-matter consultants.&lt;sup&gt;&lt;a href=&quot;#fn6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; This would thicken the market so that I can delegate effectively; it would enable deferred-acceptance matching schemes, which are strategy-proof and therefore improve business transparency; and it&apos;d even allow batch-accepting invites so that nobody has to reprioritize whenever someone higher on the org chart needs to squeeze in a new meeting.&lt;sup&gt;&lt;a href=&quot;#fn7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt; We&apos;ve basically independently recreated the sprint, but for meetings!&lt;/p&gt;
&lt;p&gt;If in some distant future you&apos;ve vibe-coded your way into founding a B2B SaaS company based on this idea, all I ask is that provide a requisite shoutout on your &lt;code&gt;About&lt;/code&gt; page!&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Cory Doctorow, &lt;a href=&quot;https://pluralistic.net/2022/11/28/enshittification/&quot;&gt;&quot;How monopoly enshittified Amazon&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://9to5mac.com/2025/05/09/ios-19-could-bring-apple-intelligence-to-calendar-app-per-acquisition/&quot;&gt;iOS 19 could bring AI to the Calendar app per just-revealed acquisition&lt;/a&gt; (9to5Mac). &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Amazon, &lt;a href=&quot;https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-data-mesh/teams-interactions.html&quot;&gt;Teams and interactions&lt;/a&gt;. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Lean_manufacturing&quot;&gt;Lean manufacturing&lt;/a&gt;. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.hbs.edu/faculty/Pages/profile.aspx?facId=6594&quot;&gt;Alvin E. Roth&lt;/a&gt;. &lt;a href=&quot;#fnref5&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;See &lt;a href=&quot;https://www.hbs.edu/faculty/Pages/item.aspx?num=31507&quot;&gt;&quot;What Have We Learned From Market Design&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref6&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The convenience of the marginal meeting time slot is strictly negative. People pick the best times first, so last-minute stuff either lands on Fridays at 4:30 pm, or you&apos;ve got to reshuffle your entire calendar to free up time earlier in the day. The high-order shock wave this sends through the org&apos;s calendars actually &lt;em&gt;is&lt;/em&gt; a legitimate use case for an AI calendar assistant, but even so it&apos;d only treat the symptom. &lt;a href=&quot;#fnref7&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Kagi is fresh air for search</title><link>https://danielspracklin.com/posts/kagi-fresh-air-search/</link><guid isPermaLink="true">https://danielspracklin.com/posts/kagi-fresh-air-search/</guid><description>My thoughts on Kagi after 18 months of use</description><pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kagi is the best web product I&apos;ve used in the past two years. If you value curiosity, you might think so too!&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Search&lt;/h2&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I love reading stuff&amp;lt;/span&amp;gt; that&apos;s a bit off the beaten path -- niche writing that you won&apos;t find in a pop-sci book, personal blogs that exhibit a super distinctive authorial voice even if they might not get tonnes of traffic, reference books that categorize and assemble objects in unexpected ways. This interest was no doubt formed during my childhood summer breaks, when I&apos;d spend days methodically skimming the 20-odd volumes of the family&apos;s pre-1989&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; &lt;em&gt;Funk and Wagnalls&lt;/em&gt; to learn about every topic that was fit to print. I spent so much time in those books that I&apos;m pretty sure I memorized the first and last headwords in every volume. (Don&apos;t ask me to recall them now though; I can hardly remember what I had for supper yesterday.)&lt;/p&gt;
&lt;p&gt;Basically, learning weird stuff is fun and I try to do it as often as I can. And search is the lifeblood of esoterica. Imagine looking for a specific book in a heap of thousands without a library classification! So when I got into computers, search opened up a whole new world for me. It was like gaining the ability to see the entire encyclopedia on demand, and in real time.&lt;/p&gt;
&lt;h2&gt;Google&lt;/h2&gt;
&lt;p&gt;Like everybody else, I used Google pretty much exclusively. I did try switching to DuckDuckGo for a while for privacy reasons, but the results felt inferior to Google&apos;s, and I found myself relying on the &lt;code&gt;!g&lt;/code&gt; bang a lot. Eventually I noticed that I was using it in &lt;em&gt;every&lt;/em&gt; search query, and decided to just switch back to Google.&lt;/p&gt;
&lt;p&gt;But in recent years, there have been increasingly many complaints&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; about the quality of Google&apos;s search results. Needing to append &lt;code&gt;&quot;reddit&quot;&lt;/code&gt; to most queries if you want intelligible results is proof positive that something&apos;s awry.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; There&apos;s a constellation of potential causes here, ranging from SEO spam to Google degrading the core UX by sunsetting legitimately useful search features&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; or the rise of non-searchable web communities like Discord. I claim no special knowledge in this domain, but my money&apos;s on the perverse incentives arising from simultaneously owning global search and the default advertisement auction marketplace, and the SEO feedback loops that spawn due to that… curious market position.&lt;/p&gt;
&lt;p&gt;What&apos;s tricky though is that if you believe the criticisms, then Google&apos;s downfall is a bit of a sorites paradox. Yes, search has gotten worse, but the decline has been so gradual that it may not have jumped out at you at any particular moment. It didn&apos;t for me, at least not for a long time.&lt;/p&gt;
&lt;h2&gt;Kagi&lt;/h2&gt;
&lt;p&gt;My email records tell me I joined the Kagi private beta in April 2022, probably after seeing it mentioned in a Hacker News comment. For whatever reason it didn&apos;t stick because I just went back to Google -- I think I might have been concerned about blowing through the number of monthly searches in the $5 tier? At any rate, I didn&apos;t log any Kagi activity until September 2023, when I reassessed the product and ended up paying for the Professional tier ($10 monthly).&lt;/p&gt;
&lt;p&gt;Kagi promises a better user experience than that of ad-supported search providers, and do they ever deliver! The results dominate Google&apos;s: no sponsored content pinned to the top of the results, no videos or AI-summarized nonsense polluting the page, and better ability to surface niche content. All this makes it significantly faster and easier to find what I&apos;m looking for.&lt;/p&gt;
&lt;h3&gt;Core search&lt;/h3&gt;
&lt;p&gt;Kagi offers lenses that search specific subsets of the internet; think of them as really efficient hotkeys for search. There are lenses for recipes, web forums, &lt;code&gt;.edu&lt;/code&gt; domains, PDFs, and so on. You can also create your own lenses. My favourite by far is the Small Web lens, which lets you search a collection of small, often handcrafted websites written by actual humans, with posts published in the past week. It&apos;s a super cool way to browse recently updated sites that aren&apos;t mediated by a tech giant. If you don&apos;t want to search for a specific term, you can also browse random posts at the &lt;a href=&quot;https://kagi.com/smallweb&quot;&gt;Small Web&lt;/a&gt; front page. This works even if you don&apos;t have a Kagi subscription.&lt;/p&gt;
&lt;p&gt;What follows is a non-exhaustive look at some areas where Kagi has really impressed me. These examples don&apos;t necessarily represent the best or most important reasons to consider switching, but they&apos;re definitely things I&apos;ve appreciated. First, a super simple example based on a genre of query I submit frequently; this one&apos;s about building a specific kind of patch on a Eurorack modular system:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/google-kagi-acid-patch.webp&quot; alt=&quot;Comparing the &amp;quot;acid patch&amp;quot; results.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Nearly the entire Google page (okay, it&apos;s in half-screen mode on a 13-inch MacBook Air, but still) is taken up by YouTube videos that I can&apos;t search to figure out if they&apos;re any good, or by completely useless stills from those videos.&lt;sup&gt;&lt;a href=&quot;#fn5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; The definitive modular web forum, Mod Wiggler, isn&apos;t even visible on the page! Contrast with Kagi, which gives me what I&apos;m looking for without needing to scroll an inch.&lt;/p&gt;
&lt;p&gt;For another example, let&apos;s say I want to research Framgate, a controversy that occurred on English Wikipedia in 2019. This is a good test because there&apos;s a neighbourhood in Bangladesh called &lt;em&gt;Farmgate&lt;/em&gt;, and lots of people seem to misspell &lt;code&gt;Farmgate&lt;/code&gt; as &lt;code&gt;Framgate&lt;/code&gt;. So we&apos;ll see how many bad results appear even after I quote-wrap my query:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/google-framgate.webp&quot; alt=&quot;Google&apos;s &amp;quot;Framgate&amp;quot; results.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Google refuses to believe that I actually want to see &lt;code&gt;&quot;Framgate&quot;&lt;/code&gt; and insists on showing me a useless map and sidebar item about the neighbourhood. Basically, Google trusts aggregate search data more than it trusts me, even after I tell it precisely what to do. Not great for niche search! Now let&apos;s look at Kagi&apos;s results:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/kagi-framgate.webp&quot; alt=&quot;Kagi&apos;s &amp;quot;Framgate&amp;quot; results.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;These results are much cleaner in my view. Instead of a useless map, we get a helpful sidebar about the Wikipedia Signpost, which provides an excellent overview of the events in question.&lt;/p&gt;
&lt;p&gt;One way Kagi fights spam is by grouping listicles and surfacing discussion pages. This is especially useful when you&apos;re doing product research or shopping, because discussion forums become more easily discoverable…&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/kagi-vacuum-1.webp&quot; alt=&quot;Kagi&apos;s results for &amp;quot;best vacuum&amp;quot;.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;… and listicles are more easily ignored. (Sorry Wirecutter, but you&apos;ve fallen off!)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/kagi-vacuum-2.webp&quot; alt=&quot;Kagi&apos;s results for &amp;quot;best vacuum&amp;quot;, continued.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can also adjust the relative ranking of sites in Kagi&apos;s results. (You might have noticed this in my earlier screenshots; the little pushpin and shield-with-arrow icons next to search results indicate that they&apos;ve been boosted.) So you can push StackOverflow to the top of your search results, or if you hate Pinterest links then you can block the domain entirely. As you can see, I&apos;ve got Wikipedia pinned for super easy access, and I raise Reddit and a few other useful sources to minimize scrolling. The block list is also a lifesaver.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/kagi-raise-lower.webp&quot; alt=&quot;Kagi&apos;s raise and lower feature.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There are a couple small areas where Kagi might need some polish. For example, sometimes Google&apos;s styling can feel a bit cleaner, like with these flight tracking widgets. But on the whole I&apos;m really enjoying the Kagi experience.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/google-kagi-flight-trackers.webp&quot; alt=&quot;Comparing flight tracker widgets. Excuse the number of open tabs!&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Other considerations&lt;/h3&gt;
&lt;p&gt;Kagi works great on iOS too, although &lt;a href=&quot;https://help.kagi.com/kagi/getting-started/setting-default/safari-iphone-ipad.html&quot;&gt;the setup in Safari&lt;/a&gt; is a little involved due to the weird, cobbled-together way that Safari Extensions work. Kagi also offers a huge number of other web features and products, from AI services like its multi-model &lt;a href=&quot;https://kagi.com/assistant&quot;&gt;Assistant&lt;/a&gt; or &lt;a href=&quot;https://kagi.com/summarizer&quot;&gt;document and webpage summarizer&lt;/a&gt; to a &lt;a href=&quot;https://help.kagi.com/kagi/privacy/privacy-pass.html&quot;&gt;novel approach to anonymized search&lt;/a&gt; and a literal &lt;a href=&quot;https://orionbrowser.com&quot;&gt;web browser&lt;/a&gt;. I haven&apos;t interacted with these tools that much, but most of them are bundled in the $10 Professional tier. You may find them more tempting than I did.&lt;/p&gt;
&lt;p&gt;I haven&apos;t said much about the cost yet. For me it&apos;s always worth spending a bit more for a better product, especially when it saves me time. I&apos;ll admit that paying for search is a strange feeling at first, but in a world where every other weather app charges a monthly subscription fee, is it really &lt;em&gt;that&lt;/em&gt; weird? Plus there&apos;s the whole &quot;you&apos;re the product&quot; angle to ad-based search that I probably don&apos;t need to rehash here. So I&apos;m happy to pay $10 as long as Kagi keeps delivering a fantastic niche search experience.&lt;/p&gt;
&lt;p&gt;In their recently published 3-year anniversary blog post,&lt;sup&gt;&lt;a href=&quot;#fn6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; Kagi promises not just search but an entire user-friendly ecosystem of products that reflect their vision to become a &quot;true internet company&quot;. Given how they&apos;ve absolutely knocked search out of the park, if their forthcoming services are on par, I think Kagi will be a real breath of fresh air not just for search but for the entire web.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I don&apos;t remember the precise year of publication, but I distinctly recall that the East Germany entry didn&apos;t mention anything about the Berlin Wall falling. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;See e.g. &lt;a href=&quot;https://news.ycombinator.com/item?id=29392702&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/item?id=30347719&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/item?id=29772136&quot;&gt;3&lt;/a&gt;. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This also &lt;em&gt;seems&lt;/em&gt; like an indictment of the modern web, the theory being that 2010s-era web giants killed off the genuinely useful non-Reddit data sources. There&apos;s a lot of truth to this, but as we shall see, I don&apos;t fully believe that narrative. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;See e.g. &lt;a href=&quot;https://www.searchenginejournal.com/google-removes-cache-search-operator-documentation/528022/&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://ahrefs.com/blog/google-advanced-search-operators/&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://www.mattmaldre.com/2016/09/06/search-operators-removed/&quot;&gt;3&lt;/a&gt;, &lt;a href=&quot;https://searchengineland.com/googles-classic-link-operator-showing-signs-of-being-turned-off-for-good-242528&quot;&gt;4&lt;/a&gt;. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kagi&apos;s &lt;a href=&quot;https://kagi.com/summarizer/&quot;&gt;Universal Summarizer&lt;/a&gt; can actually summarize videos, which is extremely cool, but even so it requires an extra click. &lt;a href=&quot;#fnref5&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://blog.kagi.com/first-three-years&quot;&gt;Kagi&apos;s three-year anniversary post&lt;/a&gt;. &lt;a href=&quot;#fnref6&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>May 2025 update</title><link>https://danielspracklin.com/posts/update-202505/</link><guid isPermaLink="true">https://danielspracklin.com/posts/update-202505/</guid><description>state of affairs in May 2025</description><pubDate>Sat, 31 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;May was an&amp;lt;/span&amp;gt; eventful month!&lt;/p&gt;
&lt;h3&gt;Website&lt;/h3&gt;
&lt;p&gt;After a prolonged absence, and having grown tired of the blog&apos;s old theming (no native dark mode!) and general state of disrepair, I modernized the site by migrating SSGs from Jekyll to Astro. I don&apos;t have much front-end experience so you&apos;ll notice that I&apos;ve mostly just repurposed an existing theme while I&apos;m getting comfortable with Astro. Not yet 100% sure what theming direction I&apos;d like to pursue, but I&apos;m thinking of drawing inspiration from the &lt;a href=&quot;https://clayh53.github.io/tufte-jekyll/articles/20/tufte-style-jekyll-blog&quot;&gt;Tufte aesthetic&lt;/a&gt;. I&apos;ve also been browsing the &lt;a href=&quot;https://kagi.com/smallweb/&quot;&gt;Kagi Small Web&lt;/a&gt; a bunch lately; it&apos;s a super cool way to discover &lt;a href=&quot;https://no-ai.club&quot;&gt;thoughtful prose written by actual humans&lt;/a&gt; and to dig into the design choices they&apos;ve made. Sidebar: Kagi&apos;s search experience is incredible. Well worth the $10 monthly cost for the Professional tier.&lt;/p&gt;
&lt;p&gt;I also took some time to customize the site&apos;s typography. After some experimentation I think I&apos;ll stick with the Braille Institute&apos;s &lt;a href=&quot;https://www.brailleinstitute.org/about-us/news/braille-institute-launches-enhanced-atkinson-hyperlegible-font-to-make-reading-easier/&quot;&gt;Atkinson Hyperlegible Next&lt;/a&gt;. It&apos;s eminently readable, which I appreciate as someone whose eyesight is generally non-cooperative, and it looks great too. Linus Boman has a &lt;a href=&quot;https://www.youtube.com/watch?v=wjE5eHLICzc&quot;&gt;good YouTube video&lt;/a&gt; if you want a high-level overview of the font.&lt;/p&gt;
&lt;p&gt;Also, the site is now reachable via &lt;a href=&quot;https://danielspracklin.com&quot;&gt;https://danielspracklin.com&lt;/a&gt; in addition to the old GitLab Pages URL.&lt;/p&gt;
&lt;p&gt;On the substantive content side, I managed to finish a post about &lt;a href=&quot;https://danielspracklin.com/posts/stepwise-traps-limit-continuous-improvement/&quot;&gt;the problem with continuous improvement&lt;/a&gt;. Not sure I quite stuck the landing, but I&apos;m out of practice writing non-day-job content, so hoping things get smoother. I&apos;m also working with nonzero velocity on a few new posts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;what 1960s Japanese photography theory can tell us about product &quot;value&quot;&lt;/li&gt;
&lt;li&gt;how stream-aligned teams interact with governance and its artifacts&lt;/li&gt;
&lt;li&gt;what &quot;fast flow&quot; looks like when you have 30 to 40 hours of meetings every week&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Arts&lt;/h3&gt;
&lt;p&gt;In entirely unsurprising news, I didn&apos;t finish any books this month but added three titles to the backlog anyway. A half-marathon is on the docket this year, so I got a copy of &lt;a href=&quot;https://en.wikipedia.org/wiki/Pete_Pfitzinger&quot;&gt;Pfitzinger&apos;s&lt;/a&gt; &lt;em&gt;Faster Road Racing&lt;/em&gt;. &lt;a href=&quot;https://en.wikipedia.org/wiki/Independent_People&quot;&gt;&lt;em&gt;Independent People&lt;/em&gt;&lt;/a&gt; by Halldór Laxness is next on my list of Nordic Nobel laureates in Literature. And on the strength of &lt;a href=&quot;https://www.thediff.co&quot;&gt;Byrne Hobart&lt;/a&gt;&apos;s recent review, I picked up Bernstein&apos;s &lt;a href=&quot;https://en.wikipedia.org/wiki/A_Splendid_Exchange&quot;&gt;&lt;em&gt;A Splendid Exchange&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In terms of non-book reading, I highly recommend Clayton Ramsey&apos;s &lt;a href=&quot;https://claytonwramsey.com/blog/prompt/&quot;&gt;&quot;I&apos;d rather read the prompt&quot;&lt;/a&gt; post. I also enjoyed the characterful posts on &lt;a href=&quot;https://hanki.dev&quot;&gt;hanki.dev&lt;/a&gt;, which I discovered via Kagi Small Web.&lt;/p&gt;
&lt;p&gt;I saw ten feature films this month (mostly Hollywood or recent arthouse work) but didn&apos;t love any of them. Need to find time to watch &lt;a href=&quot;https://letterboxd.com/film/mission-impossible-the-final-reckoning/&quot;&gt;the new &lt;em&gt;Mission Impossible&lt;/em&gt;&lt;/a&gt;, although if it&apos;s anything like the overblown and ponderous &lt;a href=&quot;https://letterboxd.com/film/mission-impossible-dead-reckoning/&quot;&gt;&lt;em&gt;Dead Reckoning&lt;/em&gt;&lt;/a&gt; then my expectations are low. Seasons two of &lt;em&gt;Andor&lt;/em&gt; and of Nathan Fielder&apos;s &lt;em&gt;The Rehearsal&lt;/em&gt; are also on the watchlist.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Addendum&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Post-publication note: I was unfortunately disappointed by &lt;em&gt;Mission: Impossible -- The Final Reckoning&lt;/em&gt;, an overlong clunker edited according to an alien grammar. (The McQuarrie &lt;em&gt;M:I&lt;/em&gt; movies always linger on Cruise&apos;s face for a half-second too long, but this is taken to new extremes here.) Can&apos;t fault the set pieces, as usual, but one increasingly gets the feeling that the narrative is applied around them in post like so much &lt;em&gt;papier-mâché&lt;/em&gt;. If only the franchise had ended with &lt;em&gt;Fallout&lt;/em&gt;!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Of the May music releases, I really enjoyed &lt;a href=&quot;https://rateyourmusic.com/release/album/billy-woods/golliwog/&quot;&gt;the new billy woods album&lt;/a&gt;, although I still prefer &lt;a href=&quot;https://rateyourmusic.com/release/album/billy-woods-kenny-segal/maps/&quot;&gt;&lt;em&gt;Maps&lt;/em&gt;&lt;/a&gt;. Haven&apos;t gotten around to &lt;a href=&quot;https://rateyourmusic.com/release/album/jenny-hval/iris-silver-mist/&quot;&gt;Jenny Hval&lt;/a&gt; or &lt;a href=&quot;https://rateyourmusic.com/release/album/model_actriz/pirouette/&quot;&gt;Model/Actriz&lt;/a&gt; but am looking forward to both.&lt;/p&gt;
</content:encoded></item><item><title>Stepwise traps and the limit of continuous improvement</title><link>https://danielspracklin.com/posts/stepwise-traps-limit-continuous-improvement/</link><guid isPermaLink="true">https://danielspracklin.com/posts/stepwise-traps-limit-continuous-improvement/</guid><description>When continuous improvement fails</description><pubDate>Wed, 14 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This post distills personal views on the workplace. I&apos;m not speaking for my employer and they don&apos;t necessarily endorse what I write here.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;Beginning with the end&amp;lt;/span&amp;gt; in mind is received wisdom, probably because it usually works. But what happens when it doesn&apos;t?&lt;/p&gt;
&lt;h2&gt;Continuous improvement&lt;/h2&gt;
&lt;p&gt;Let&apos;s say you run some kind of stream-aligned team&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; and you&apos;re not getting the results you want. Maybe your widget defect rate skews high and you start getting angry emails, or maybe consumers mysteriously stop buying your product. Then your boss gives you the performance talk&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; during a 1:1, and you know you&apos;ve got to react.&lt;/p&gt;
&lt;p&gt;You quickly rule out monocausality. After all, there&apos;s an entire constellation of factors out there that can affect your outcome, and way fewer of them have effect size zero&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; than you might like. So most of the potential drivers you jot down might be playing &lt;em&gt;some&lt;/em&gt; role here. But it would be unscientific to change everything at once and hope for the best, so what do you do? You probably start by finding the single factor with the biggest systemic effect. You do this by developing hypotheses, drawing causal diagrams, running iterative experiments to test your views, and adjusting accordingly. Then you find the next-largest contributor through the same kind of testing, and so on. Eventually, either you&apos;ve made it so far down the list that you&apos;re basically nitpicking (in which case the problem is solved and your widget DPMO plummets to record lows) or enough time has passed for &lt;em&gt;new&lt;/em&gt; issues to arise (in which case &lt;code&gt;goto 1&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Over time you get so good at this that you start to do it proactively, in a kind of rhythm choreographed by instinct. The practice starts spreading through your team, then your division. Even peers closer to the periphery of Dunbar&apos;s number begin to notice your success and ask how you manage to generate such outsize returns. You think for a second, then christen it... forward &lt;a href=&quot;https://en.wikipedia.org/wiki/Stepwise_regression#Main_approaches&quot;&gt;stepwise regression&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Two months later, your competitor finds a global maximum that you missed,&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; they launch a new product segment, and they proceed to eat your lunch, crusts and all.&lt;/p&gt;
&lt;h2&gt;Reversing causal arrows&lt;/h2&gt;
&lt;p&gt;Okay, obviously nobody thinks stepwise regression and continuous improvement are the same. For one thing, the inventor of continuous improvement&lt;sup&gt;&lt;a href=&quot;#fn5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; was literally a statistician. And at any rate, improving &quot;constantly and forever&quot; was only one of Deming&apos;s 14 points. It would be unfair to strip away the entire context of total quality management by reading one sentence in a vacuum.&lt;/p&gt;
&lt;p&gt;But I&apos;m starting to see the stepwise regression approach to continuous improvement in more places than it perhaps ought to be. I don&apos;t know if this is a recent development or if I&apos;m only catching it now that I have a name for it.&lt;sup&gt;&lt;a href=&quot;#fn6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; But either way it&apos;s subtle, and it&apos;s subtle because it&apos;s slow.&lt;/p&gt;
&lt;p&gt;The stepwise trap essentially reverses the arrows in the causal diagram by swapping the actor (process-creator) and the object (process), and by inverting the legibility of the waste.&lt;sup&gt;&lt;a href=&quot;#fn7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt; The following may be a helpful way to frame the reversal:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;notice waste&lt;/li&gt;
&lt;li&gt;iterate to reduce said waste&lt;/li&gt;
&lt;li&gt;design and formalize process to reduce waste by default&lt;/li&gt;
&lt;li&gt;follow process&lt;/li&gt;
&lt;li&gt;follow process regardless of legibility of waste&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;How bad is this, really? Can&apos;t local maxima be pretty nice, especially if you&apos;re willing to lower your standards? That may be so, but I think there are a few compelling reasons to double back on stepwiseness.&lt;/p&gt;
&lt;h2&gt;Interpassivity&lt;/h2&gt;
&lt;p&gt;In the numbered list above, there&apos;s a clear inflection point somewhere around step 4. I think we reach that point precisely when we allow &lt;a href=&quot;https://en.wikipedia.org/wiki/Interpassivity&quot;&gt;interpassive thinking&lt;/a&gt; to take hold in a system. Basically, process empowers you to reduce waste in a predictable, standardized way. But if you&apos;re not careful, you might also accidentally empower the process -- to free you from having to think about the problem at all. In this sense, &lt;em&gt;the process watches for waste so that you don&apos;t have to.&lt;/em&gt; And just as you probably never actually caught up on the 2010s-era blog posts you sent to your read-it-later app of choice, you lose line of sight when you play the interpassive set-and-forget game with problem ownership.&lt;/p&gt;
&lt;p&gt;Critically, this loss of control is never intentional. Nobody buys a DVR intending to &lt;em&gt;never&lt;/em&gt; watch the episodes of &lt;em&gt;24&lt;/em&gt; they&apos;d like to tape. And nobody institutes a process expecting that it will obscure the problem it was intended to solve. But both happen anyway.&lt;/p&gt;
&lt;p&gt;You might see this interpassive dynamic crop up when things go wrong. For instance, when a defective product escapes QA, you&apos;ll sometimes hear the responsible individual pivot to talking about the &lt;em&gt;existence&lt;/em&gt; of their review process as a justification, as if it weren&apos;t that very same process that failed to catch the defect in the first place! On some level, the QA process is watching for defects so that &lt;em&gt;no human has to&lt;/em&gt;, at least not until they get hauled in front of their boss.
Now, I want to be clear about the scope of my critique for two reasons. First, much like culture, process is descriptively just a &quot;ready-made set of solutions for human problems&quot;,&lt;sup&gt;&lt;a href=&quot;#fn8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt; neither good nor bad in isolation. And second, delegating observability to a process is often a force multiplier. As Erlend Hamberg writes,&lt;sup&gt;&lt;a href=&quot;#fn9&quot;&gt;[9]&lt;/a&gt;&lt;/sup&gt; when &quot;your trust in your system is in place, your subconsciousness will stop keeping track of all the things you need to do and stop constantly reminding you. This reduces stress and frees up precious brain time to more productive thinking&quot;. If you believe that, then you should also believe that process works, up to a point. But tiptoe further and you&apos;ll start to lose visibility.:marginnote[In GTD-land this rhymes with adding a thousand entries to your inbox every day, which turns your productivity management tool into &lt;em&gt;Tristram Shandy&lt;/em&gt;.]&lt;/p&gt;
&lt;h2&gt;Process accretion&lt;/h2&gt;
&lt;p&gt;Alright, we&apos;ve established that things look dodgy beyond the inflection point. But what&apos;s so bad about keeping two hands on the reins? Well, there&apos;s also a reinforcing feedback loop at play here, one hidden within the usual inertial justifications: &quot;&lt;em&gt;we&apos;ve always done it this way&lt;/em&gt;&quot;, &quot;&lt;em&gt;perfect is the enemy of good&lt;/em&gt;&quot;, &quot;&lt;em&gt;let&apos;s get it out the door and worry about that in the optimization phase&lt;/em&gt;&quot;, etc. This is the linguistic register of a systemic force that is incredibly hard to control because it&apos;s so predictable and therefore memetic. While predictability is often a useful tool,:marginnote[Try designing a taxation regime without &lt;a href=&quot;https://www.canada.ca/en/revenue-agency/services/forms-publications/current-income-tax-interpretation-bulletins.html&quot;&gt;interpretation bulletins&lt;/a&gt; and watch where your tax base migrates!] it tends to push you headlong toward the inflection point, accreting as it goes. This shouldn&apos;t be too surprising; after all, when a process works the first time, people want to do it faster and more frequently. So the flywheel effect empowers the process to become even more predictable and even harder to escape.&lt;/p&gt;
&lt;p&gt;A good example of accretion in action is the pilot project. Such projects have an uncanny ability to end up in production as the default approach endorsed by the org. But the oft-promised &quot;phase 2&quot; of the pilot is inversely unlikely to see the light of day, which means the sketchy scope and resourcing assumptions underlying the pilot aren&apos;t adjusted to reflect mission success. In this sense, &quot;pilots&quot; are organizational contronyms; they cease to become &quot;pilots&quot; exactly when they&apos;re given that label.&lt;/p&gt;
&lt;p&gt;This example also motivates why the inflection point is earlier than you might have guessed: the reinforcing feedback loop of predictability takes hold the first time a process is seen to work. And since reinforcing feedback loops are superlinear, early inflection points are &lt;em&gt;really&lt;/em&gt; dangerous.&lt;/p&gt;
&lt;h2&gt;Observability is not a panacea&lt;/h2&gt;
&lt;p&gt;So when&apos;s the right moment to grab the policy levers and try to balance out the predictability feedback loop? Could observability as a value system enable more timely course-correction and more legible waste? This endgame still isn&apos;t much of a winner in my view, for three reasons.&lt;/p&gt;
&lt;p&gt;First, if you drive on black ice and start to lose control of your car, oversteering and slamming the brakes is basically the worst thing you can do.&lt;sup&gt;&lt;a href=&quot;#fn10&quot;&gt;[10]&lt;/a&gt;&lt;/sup&gt; But that&apos;s exactly what observability does when it encounters a reinforcing feedback loop! Metrics are designed to be predictable,:marginnote[This is the whole point of frameworks like the SMART criteria.] and as we saw earlier, predictable things become superlinearly hard to steer. So by the time you try to wrest back control, anything more than a light touch will send the system into a spinout.&lt;/p&gt;
&lt;p&gt;Second, even if you commit to quantify everything and build out the instrumentation required to track it, you still need an institutional way to zoom out far enough to find unexpected global maxima. That won&apos;t work if your metrics are as predictable as your processes. One way I&apos;ve seen this happen is when orgs choose a metric for which they control only part of the fraction -- say, they own the policy levers to shift the denominator but the numerator is out of their hands. In such cases, if a purely notional, reasonably motivated grey-hat actor foresees downward shifts in the numerator&apos;s behaviour, they may also see… opportunities to game the metric by providing a strictly worse service.:marginnote[For example, if this purely notional individual were financially accountable for advertising and had reason to believe that a looming recession might affect consumer behaviour, cheesing CAC would be as easy as cutting ad spend. This is why counterweight metrics exist -- although they certainly &lt;a href=&quot;https://danielspracklin.com/posts/ungaming-the-counterweight/&quot;&gt;don&apos;t solve all our problems&lt;/a&gt;.] But often this perverse global incentive is obscured from the org itself, because the metric -- or the process used to design it -- is missing a scroll wheel. There&apos;s also the related problem that if lots of KPIs end up incentive-misaligned,&lt;sup&gt;&lt;a href=&quot;#fn11&quot;&gt;[11]&lt;/a&gt;&lt;/sup&gt; then their imprecision may not even improve your &lt;em&gt;R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;/em&gt;, which probably won&apos;t stop your competitor from eating your lunch either.&lt;/p&gt;
&lt;p&gt;And finally, we should think about how the purpose of metrics affects their fitness for avoiding the stepwise trap. Metrics are fundamentally tools to increase system legibility. Now, legibility is great if you like data, but the fact is that some domains naturally resist quantification.:marginnote[To adapt &lt;a href=&quot;https://en.wikipedia.org/wiki/Seeing_Like_a_State&quot;&gt;&lt;em&gt;Seeing Like a State&lt;/em&gt;&lt;/a&gt;, metrics are &quot;far more static and schematic than the actual social phenomena they presume to typify&quot; (p. 46).] So if you impose a brute-force metric on these areas, then you may in fact strip them of their essential character. This is culturally destructive, as you may end up killing the forest for the trees.&lt;/p&gt;
&lt;h2&gt;Moving laterally&lt;/h2&gt;
&lt;p&gt;If it&apos;s so hard to pull the reins at the critical moment before the reinforcing feedback loop dominates, can we reap &lt;em&gt;any&lt;/em&gt; asymmetric upside from delegating to a process?&lt;/p&gt;
&lt;p&gt;What&apos;s worked well for me so far is injecting as much creativity into early- and mid-stage process as possible. I typically look for a healthy inflow of outsider ideas or counterfactuals that can de-striate the system for long enough to expose other potential maxima. In systems language, lateral thinking turns our reinforcing feedback loop into a second-order system where creativity and counterfactuals are potential damping parameters.&lt;/p&gt;
&lt;p&gt;Another concrete technique I like to employ is something I wrote about a few years ago in my &lt;a href=&quot;https://danielspracklin.com/posts/a-second-brain-experiment/&quot;&gt;second-brain post&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;… grab ideas from a variety of disciplines, connect them in interesting ways, turn the nodes of the resulting connected graph into sentence fragments, then rearrange them on a page…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This interdisciplinary approach keeps me busy grabbing books off the shelf to hunt down half-remembered references that I should&apos;ve more diligently logged in Obsidian. But when I do manage to track down a bold or unexpected idea, it often helps &lt;em&gt;interactivize&lt;/em&gt; the process in question.&lt;/p&gt;
&lt;p&gt;Another technique I like is applying a lateral thinking tool that can expose the fracture planes in conventional approaches. I quite like the &lt;a href=&quot;https://stoney.sb.org/eno/oblique.html&quot;&gt;Oblique Strategies&lt;/a&gt; and &lt;a href=&quot;https://www.liberatingstructures.com&quot;&gt;Liberating Structures&lt;/a&gt; for this purpose. The Oblique Strategies are better for solo work though; I wouldn&apos;t necessarily break them out during a team meeting.:marginnote[I fired up the Oblique Strategies app while writing this post and was gifted the idea to &quot;put in earplugs&quot;. An apposite suggestion, as the cat was unusually loud today.]&lt;/p&gt;
&lt;p&gt;Two words of caution. First, if you use these approaches, you will almost certainly introduce some measure of tension into the system. A little tension is a good thing; as Niels Bohr (probably) said, paradoxes are what give us hope of making progress. But the system will naturally push back against that tension,&lt;sup&gt;&lt;a href=&quot;#fn12&quot;&gt;[12]&lt;/a&gt;&lt;/sup&gt; which can feel both unpleasant and unpleasantly personal. The key is that this resistance propagates through a &lt;em&gt;balancing&lt;/em&gt; feedback loop, which we can map with a causal loop diagram to understand the often unintuitive factors underlying the pushback. Then it&apos;s just a matter of finding the right creative lever to nudge the system back toward steady state and minimize the undertow.&lt;/p&gt;
&lt;p&gt;Lastly, this mindset may totally change where you end up! So if you must begin with the end in mind, try giving yourself the creative freedom to get there via lateral, non-stepwise paths. The view might be better than what you expected when you set out.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://teamtopologies.com/key-concepts&quot;&gt;Team Topologies: key concepts&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Roy Rapoport, &lt;a href=&quot;https://medium.com/@royrapoport/the-five-conditions-for-improvement-20909f856dab&quot;&gt;&quot;The Five Conditions for Improvement&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Andrew Gelman, &lt;a href=&quot;https://statmodeling.stat.columbia.edu/2017/01/13/29604/&quot;&gt;on nonzero effects&lt;/a&gt;. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://stats.stackexchange.com/questions/29851/does-a-stepwise-approach-produce-the-highest-r2-model&quot;&gt;Does a stepwise approach produce the highest-R² model?&lt;/a&gt;. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/W._Edwards_Deming&quot;&gt;W. Edwards Deming&lt;/a&gt;. &lt;a href=&quot;#fnref5&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Frequency_illusion&quot;&gt;Frequency illusion&lt;/a&gt;. &lt;a href=&quot;#fnref6&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Venkat, &lt;a href=&quot;https://ribbonfarm.com/2010/07/26/a-big-little-idea-called-legibility/&quot;&gt;&quot;A Big Little Idea Called Legibility&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref7&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Oscar_Lewis&quot;&gt;Oscar Lewis&lt;/a&gt; in &lt;em&gt;The Culture of Poverty&lt;/em&gt;. &lt;a href=&quot;#fnref8&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Erlend Hamberg, &lt;a href=&quot;https://hamberg.no/gtd&quot;&gt;on GTD&lt;/a&gt;. &lt;a href=&quot;#fnref9&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://lifehacker.com/travel/black-ice-driving-tips-and-mistakes&quot;&gt;Lifehacker on black-ice driving&lt;/a&gt;. &lt;a href=&quot;#fnref10&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Goodhart%27s_law&quot;&gt;Goodhart&apos;s law&lt;/a&gt;. &lt;a href=&quot;#fnref11&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;From Peter Senge&apos;s &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Fifth_Discipline#The_11_Laws_of_the_Fifth_Discipline&quot;&gt;&lt;em&gt;The Fifth Discipline&lt;/em&gt;&lt;/a&gt;. &lt;a href=&quot;#fnref12&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>What was not up next</title><link>https://danielspracklin.com/posts/what-was-not-up-next/</link><guid isPermaLink="true">https://danielspracklin.com/posts/what-was-not-up-next/</guid><description>another state of the blog update</description><pubDate>Sat, 10 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;Well, that blog post&amp;lt;/span&amp;gt; I&apos;d &lt;a href=&quot;https://danielspracklin.com/posts/whats-up-next/&quot;&gt;promised a few years back&lt;/a&gt; never quite came into existence. Sometimes you&apos;ve got an intuition for how ideas will assemble, but the feedback loops end up being intractable.&lt;/p&gt;
&lt;p&gt;On that note, the weblog has been (mostly) rebranded! Still configuring stuff and getting used to the &lt;code&gt;npm&lt;/code&gt;-based dev workflow.&lt;/p&gt;
</content:encoded></item><item><title>What&apos;s up next</title><link>https://danielspracklin.com/posts/whats-up-next/</link><guid isPermaLink="true">https://danielspracklin.com/posts/whats-up-next/</guid><description>another state of the blog update</description><pubDate>Wed, 16 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;Awfully quiet on&amp;lt;/span&amp;gt; the blog lately, but I&apos;ve been hard at work on that front, with a monster of a post on the way. Stay tuned to read about how Skelton and Pais&apos; &lt;em&gt;Team Topologies&lt;/em&gt;, the Make Noise Strega, and the works of Catalan provocateur Albert Serra are all thematically linked.&lt;/p&gt;
</content:encoded></item><item><title>One year with the Ergodox: now with Gergo</title><link>https://danielspracklin.com/posts/one-year-with-the-ergodox-and-gergo/</link><guid isPermaLink="true">https://danielspracklin.com/posts/one-year-with-the-ergodox-and-gergo/</guid><description>impressions of two ergonomic mechanical keyboards</description><pubDate>Wed, 21 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is the fifth entry in an ongoing series chronicling my adventures with the Ergodox EZ keyboard. Check out &lt;a href=&quot;https://danielspracklin.com/posts/ergodox-ez-the-first-two-months/&quot;&gt;months 1 and 2&lt;/a&gt;, &lt;a href=&quot;https://danielspracklin.com/posts/checking-in-with-the-ergodox-ez-month-four/&quot;&gt;months 3 and 4&lt;/a&gt;, &lt;a href=&quot;https://danielspracklin.com/posts/ergodox-month-five-ctrl-issues/&quot;&gt;month 5&lt;/a&gt; and &lt;a href=&quot;https://danielspracklin.com/posts/ergodox-half-year/&quot;&gt;month 6&lt;/a&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;It&apos;s been a year and a few days&amp;lt;/span&amp;gt; since the Ergodox EZ landed on my desk. Not a bad time for a… new keyboard.&lt;/p&gt;
&lt;h2&gt;Enter the Gergo&lt;/h2&gt;
&lt;p&gt;I&apos;d always figured I would try a Kyria as my next ergonomic keyboard. It has a bit of everything going for it: fewer keys than most boards, a stylish case and a neat tenting puck design. It&apos;s a bit like an Ergodox in a smaller form factor, and so it seemed like a natural fit. But one morning this spring I got to checking keyboard prices and availabilities, and not long after I ended up with the Gboards Gergo on my desk.&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; The Gergo feels totally different from anything I&apos;ve ever tried before, and it&apos;ll be a fun challenge to get used to it.&lt;/p&gt;
&lt;p&gt;The Ergodox EZ comes with its own ecosystem, including the online Oryx tool that can graphically configure keyboard layouts. There&apos;s no such feature with the Gergo, unless you count the less flashy online QMK graphical configurator, but I preferred to jump right into QMK instead. I largely adapted my &lt;a href=&quot;https://gitlab.com/danielspracklin/ergodox-ez/-/blob/master/keymap.c&quot;&gt;existing Ergodox layout&lt;/a&gt;, but had to rethink the thumb clusters, since the Gergo has three fewer keys per thumb cluster, and has only two &quot;thumb-ish&quot; keys where the Ergodox&apos;s bottom row is. This wasn&apos;t so challenging to work around, though: I moved a couple of the symbols and macros that had occupied the keys in question to other layers, and refined the layers that did exist so I wouldn&apos;t need as many &lt;code&gt;MO&lt;/code&gt; and &lt;code&gt;TG&lt;/code&gt; keys. This meant removing the QWERTY layer entirely&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; and tweaking the function layer for easier number typing.&lt;/p&gt;
&lt;p&gt;In my Gergo layout, two of the right-thumb keys are just Discord and DoublePane navigation shortcuts that I&apos;ll probably end up moving somewhere else.&lt;/p&gt;
&lt;h2&gt;Form factor&lt;/h2&gt;
&lt;p&gt;Only after I got the layout settled did I try typing on the Gergo. It was completely unlike anything I&apos;d ever used before. The first major difference was the feel of the low-profile 20-gram gChoc Kailh switches, which turn out to be incredibly easy to depress when you&apos;re used to heavier Cherry Browns. No index finger bump on QWERTY &lt;code&gt;F&lt;/code&gt; or &lt;code&gt;J&lt;/code&gt;, but that&apos;s not the end of the world in my view. The second difference I noticed was the overall feel of the board: the complete lack of case and deliberate choice to ditch the number row give the Gergo a certain stark hacker-chic vibe. It doesn&apos;t feel fragile though; if anything, it feels &lt;em&gt;fast&lt;/em&gt;, like I could break my old speedtyping PBs with a bit of practice. Another difference is that the Gergo is actually a bit wider than the Ergodox, in the sense that if you line up the near edge of the two boards&apos; outer &lt;code&gt;1.5u&lt;/code&gt; keys, the Gergo&apos;s thumb clusters are slightly farther away than the Ergodox&apos;s. It&apos;s not a huge difference, but it did trip me up for a bit when hitting the space key.&lt;/p&gt;
&lt;p&gt;I&apos;ve saved the biggest difference, and one that&apos;s got me tinkering still, for last. I&apos;ve become used to the tenting on the Ergodox, so even though I knew the Gergo doesn&apos;t come with a tenting kit, it was still a surprise to type on a flat board. I&apos;m not a Fusion 360 wizard so printing my own tenting stand isn&apos;t really an option. But my closet is currently housing bins full of several thousand assorted Lego bricks, plates and tiles -- really the next best thing. I used some 2×4 sloped bricks to raise the near sides of the Gergo by about 2.25 cm (roughly 2 bricks&apos; height), which gives the board a comfortable slope. I also added some plates beneath the back sloped bricks to bring them one-third of a brick higher than the front, so that the board tilts slightly toward me. This worked nicely if I rested my hands on the keyboard; so far so good. But when I typed, the board moved around on the Lego tent, causing a roll along the longitudinal axis that made it hard to depress keys precisely. So I engineered some bracket-style clips that keep the tilting angle roughly stable while typing.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; This is an improvement, but the Gergo still has a propensity for scooting around my desk when I type quickly. I can&apos;t tell if this because it&apos;s so light, or because I&apos;m used to pounding on Cherrys, or both. I thought about building a rigid Lego connector to affix the two halves to each other, but figured this would make it harder to position the halves exactly how I&apos;d like. I think I&apos;d need an approach that&apos;s stable by default but that can be moved with a bit of pressure; maybe there&apos;s a way to do this with Lego hydraulics or Technic actuators, as in this Reddit post.&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/ergodox_gergo_komplete_kontrol.webp&quot; alt=&quot;The Gergo takes centre stage, while the Ergodox EZ lurks underneath a Komplete Kontrol M32 keyboard, perched atop another custom Lego stand&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;What of the Ergodox?&lt;/h2&gt;
&lt;p&gt;For now the Ergodox EZ is my daily keyboard, but I am slowly phasing in the Gergo (mostly on weekends so far) to see how it compares for a variety of use cases. I expect the two boards&apos; layouts to diverge as a function of time. If nothing else, I&apos;ll be keeping future me on his toes.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Rabbit hole: I don&apos;t doubt that I&apos;ll still get a Kyria at some point. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time to commit to learning my passwords in Colemak -- better late than never! &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I can&apos;t for the life of me find the actual part number for this piece on Bricklink; seems like you need to know what a piece is called before you can find it! But you can see them right behind the TRRS cable in the picture. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/ErgoMechKeyboards/comments/ip3c6m/the_technic_tenting_technique/&quot;&gt;r/ErgoMechKeyboards: the Technic tenting technique&lt;/a&gt;. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Scattered thoughts on speedtyping</title><link>https://danielspracklin.com/posts/scattered-thoughts-on-speedtyping/</link><guid isPermaLink="true">https://danielspracklin.com/posts/scattered-thoughts-on-speedtyping/</guid><description>impressions on speedtyping</description><pubDate>Thu, 11 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I&apos;ve been practicing&amp;lt;/span&amp;gt; my typing a lot lately; here&apos;s what I&apos;ve got so far.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Regularly practicing piano scales, arpeggios and triads has increased my overall and burst speed by at least 10 wpm.&lt;/li&gt;
&lt;li&gt;Finger strength exercises are critical, especially when using a layout like Colemak, where the rolls (&lt;code&gt;first&lt;/code&gt;) and skip-rolls (&lt;code&gt;ast, tra&lt;/code&gt;, &lt;em&gt;etc.&lt;/em&gt;) can easily trip up weak ring and pinky fingers.&lt;/li&gt;
&lt;li&gt;I like to use the following exercise, which I learned as a child from an old Russian piano exercise book. Hold down any three fingers, and alternate presses with the other two. My favourite permutation is to hold &lt;code&gt;124&lt;/code&gt; (thumb, index and ring) and let &lt;code&gt;35&lt;/code&gt; (middle and pinky) vary. Try with both hands simultaneously, and see if you can keep your fingers synchronized without lifting your ring fingers.&lt;/li&gt;
&lt;li&gt;I still cheat occasionally and hit &lt;code&gt;Q&lt;/code&gt; with my left ring finger. Maybe I haven&apos;t been practicing the above exercise enough.&lt;/li&gt;
&lt;li&gt;Always look a word ahead.&lt;/li&gt;
&lt;li&gt;Prioritizing speed at the expense of accuracy is a great way to calcify bad habits. Sometimes I can eke out a slightly faster score if I tense my hands up, but this generally ends up hurting me in the long run. I usually type best when barely feathering the keys. Imagining a sort of digital flow state helps.&lt;/li&gt;
&lt;li&gt;I&apos;ve set myself a fairly ambitious stretch goal this year: hitting 200 wpm on a 15-second test. I probably won&apos;t reach this.&lt;/li&gt;
&lt;li&gt;There will always be someone faster than me, and that&apos;s okay. My only real competitor is myself.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Ergodox EZ: half a year</title><link>https://danielspracklin.com/posts/ergodox-half-year/</link><guid isPermaLink="true">https://danielspracklin.com/posts/ergodox-half-year/</guid><description>impressions of the Ergodox EZ and Colemak after six months of use</description><pubDate>Wed, 11 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is the fourth entry in an ongoing series chronicling my adventures with the Ergodox EZ keyboard. See posts on &lt;a href=&quot;https://danielspracklin.com/posts/ergodox-ez-the-first-two-months/&quot;&gt;months 1 and 2&lt;/a&gt;, &lt;a href=&quot;https://danielspracklin.com/posts/checking-in-with-the-ergodox-ez-month-four/&quot;&gt;months 3 and 4&lt;/a&gt;, and &lt;a href=&quot;https://danielspracklin.com/posts/ergodox-month-five-ctrl-issues/&quot;&gt;month 5&lt;/a&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I bought my&amp;lt;/span&amp;gt; Ergodox EZ just over six months ago and switched layouts from QWERTY to Colemak shortly thereafter. I can&apos;t talk meaningfully about one without referencing the other, so although I&apos;ll discuss the Ergodox and Colemak separately in this post, I think they&apos;re complementary at their heart. If you want to improve your setup, you should think about a split ergonomic keyboard and should explore switching to Colemak. Inversely, if you&apos;re considering Colemak, I think you should try it on a split ergonomic keyboard. Onto the details!&lt;/p&gt;
&lt;h2&gt;Ergodox EZ&lt;/h2&gt;
&lt;p&gt;First, some follow-up from the last post, where I discussed some debouncing issues I&apos;d been experiencing. These are mostly gone thanks to QMK debouncing threshold tweaks. Every now and again I&apos;ll take the &lt;code&gt;2u&lt;/code&gt; space key off and readjust it; that seems to help too.&lt;/p&gt;
&lt;p&gt;After six months of practice on an Ergodox, I&apos;ve found myself making frequent comparisons between that keyboard and the 88-key kind designed to produce sound. If I had to distill my thoughts on the Ergodox into one pithy statement, it might be that &lt;em&gt;pianists will probably like this keyboard&lt;/em&gt;. Beyond the musically inclined, for whom and when might the Ergodox be a good purchase?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If you&apos;re tired of pinky strain&lt;/strong&gt;. The main benefit of the Ergodox is freeing your pinkies from having to reach for modifier keys. Where to put them instead -- thumb cluster or home row? -- is an open question, but regardless you&apos;ll be saving your pinkies from overwork. I haven&apos;t stretched my left pinky for &lt;code&gt;Ctrl&lt;/code&gt; in months, and I&apos;m better for it!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you want more wrist freedom&lt;/strong&gt;. The row stagger on a typical keyboard forces your arms and wrists to point inward. Even if this doesn&apos;t bother you, the fact is that you don&apos;t have any choice in the matter. Split keyboards like the Ergodox give you the freedom to put the halves wherever you&apos;d like -- even underneath your office chair&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; if you want. The downside is a temporary slowdown if you&apos;ve historically &quot;cheated&quot; hands on the &lt;code&gt;B&lt;/code&gt; and &lt;code&gt;Y&lt;/code&gt; keys; you&apos;ll either have to retrain your fingers or map some &lt;code&gt;1.5u&lt;/code&gt; keys for redundancy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you have reasonably large hands&lt;/strong&gt;. You might have trouble comfortably tapping the outer thumb cluster buttons if you&apos;ve got smaller hands. For reference, if I stretch, I can play a tenth on the white keys of a piano, and I don&apos;t have any trouble reaching the &lt;code&gt;2u&lt;/code&gt; thumb keys. On the other hand, if you have trouble reaching an octave, this is probably not the board for you.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you&apos;ve got some finger dexterity, or the motivation to develop it&lt;/strong&gt;. The switch from row- to column-stagger is not so easy, especially if you&apos;ve already built up some row-staggered speed. My experience with finger-strength piano exercises convinced me that I&apos;d have the dexterity to retrain my fingers. In the end I was correct in this assessment, but I had to start over to get there: on day one with the Ergodox I went from 120 row-staggered wpm to 7 column-staggered wpm.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you like to tinker&lt;/strong&gt;. Some part of my purchase was motivated by the Ergodox&apos;s aesthetic -- the thing &lt;em&gt;looks&lt;/em&gt; cool on a desk. But if you don&apos;t enjoy tinkering, you may well tire of continuously improving layouts and tenting angles, and in that sense the keyboard&apos;s aesthetics may lead you astray.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you don&apos;t mind reading and writing code&lt;/strong&gt;. Sooner or later you&apos;ll want to try your hand at QMK if you want to derive maximal value from an Ergodox. I&apos;m not a C guy so I haven&apos;t done much in QMK thus far, but I know I&apos;ll have to get my hands dirty at some point. If you&apos;re looking for a no-code option, you can get pretty far with Oryx, but the really cool features like tap-dancing are QMK-exclusives.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you&apos;re okay with the possibility of retiring it&lt;/strong&gt;. There are a wealth of split ergonomic keyboards that have been optimized for specialized use cases (think smaller hands, less finger travel, more aggressive column stagger, etc). The Ergodox can&apos;t achieve all these objectives at once, although I&apos;d argue that it&apos;s a fine generalist, and so don&apos;t expect this to be your endgame. I know I&apos;m already looking at a second split ergo mech board.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Colemak&lt;/h2&gt;
&lt;p&gt;There&apos;s little doubt in my mind that Colemak is an excellent keyboard layout. After only 6 months in Colemak, I can type more quickly than I could with 25 years&apos; experience in QWERTY, and that&apos;s &lt;em&gt;after&lt;/em&gt; taking into account all the hacks and mods I&apos;d implemented to boost my QWERTY speed. What&apos;s more, typing feels easier in Colemak: there&apos;s significantly less finger travel and single-finger typing, and the relatively frequent rolls make it easier to get into a consistent typing rhythm.&lt;/p&gt;
&lt;p&gt;For all my praise, I have one damning complaint about Colemak. If you make the switch, it &lt;em&gt;will&lt;/em&gt; destroy your QWERTY muscle memory. That means no typing on someone else&apos;s keyboard ever, at least not without a strategy to address this. I&apos;d suggest that prospective Colemak users consider pairing a layout with a keyboard.&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; Keep using QWERTY on your daily driver keyboard, pick up a split column-staggered ergonomic keyboard for Colemak purposes, and never mix layouts. This has been my approach since Day 1 of Colemak, and I haven&apos;t had any trouble maintaining QWERTY fluency on my dedicated QWERTY board. The many differences in layouts give me enough of a cognitive barrier to keep them straight.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2&gt;Putting it all together&lt;/h2&gt;
&lt;p&gt;At this point I think I&apos;ve achieved most of the goals I&apos;d set for myself at the start of this adventure. I made concrete improvements to my ergonomic setup, I learned a new and better keyboard layout, and I broke my old speed barrier. So what&apos;s next for me? A couple of things spring to mind. I think there are still speed strides to be made when programming in Colemak, as well as further layout improvements that would simplify text manipulation. I&apos;m debating picking up a more minimalist keyboard -- probably something like a Kyria or an Aysu -- and forcing myself to truly commit to the ideal of minimizing finger travel. On the whole, while it feels good to have come reasonably close to mastery, now it&apos;s on to the next thing.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Yf-rWiTWfG4&quot;&gt;Video demonstration&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This logic works the other way around too: if you&apos;re planning to switch to a split ergonomic keyboard, it&apos;s an ideal time to try a different keyboard layout too. My (biased) recommendation is Colemak, but really anything would do the job. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In fact I typed this entire blog post in QWERTY without difficulty, although certainly less quickly than I could have on Colemak. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>State of the blog</title><link>https://danielspracklin.com/posts/state-of-the-blog/</link><guid isPermaLink="true">https://danielspracklin.com/posts/state-of-the-blog/</guid><description>an update about the blog</description><pubDate>Fri, 30 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I&apos;ve been writing here&amp;lt;/span&amp;gt; for a few months now, and I&apos;m happy with the result. While Google says readership is low, that&apos;s not unexpected given my hands-off approach to promotion. And from the beginning, my goal wasn&apos;t to optimize CTR, but rather to develop a habit of publishing longer-form pieces on a variety of technical subjects. By that metric I think I&apos;m on track.&lt;/p&gt;
&lt;p&gt;What&apos;s next on the blog? In roughly chronological order:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A six-month retrospective of the Ergodox EZ and Colemak&lt;/li&gt;
&lt;li&gt;A discussion of mass transit usage in Ottawa&lt;/li&gt;
&lt;li&gt;A new post about second-brain systems and obsidian.md, including quibbles&lt;/li&gt;
&lt;li&gt;Exploring cool &lt;a href=&quot;https://purrr.tidyverse.org&quot;&gt;&lt;code&gt;purrr&lt;/code&gt;&lt;/a&gt; features&lt;/li&gt;
&lt;li&gt;More work on the &lt;a href=&quot;https://gitlab.com/danielspracklin/daniel&quot;&gt;&lt;code&gt;daniel&lt;/code&gt;&lt;/a&gt; R package&lt;/li&gt;
&lt;li&gt;Tweaks to the blog&apos;s CSS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No concrete ETA on these posts, but I&apos;m hoping to tackle most of these in the next six months.&lt;/p&gt;
</content:encoded></item><item><title>Ways to demonstrate the CLT with purrr</title><link>https://danielspracklin.com/posts/ways-to-demonstrate-the-clt-with-purrr/</link><guid isPermaLink="true">https://danielspracklin.com/posts/ways-to-demonstrate-the-clt-with-purrr/</guid><description>using purrr to write idiomatic R code</description><pubDate>Mon, 19 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;The tidyverse is&amp;lt;/span&amp;gt; one of my favourite suites of R packages, and its idiomatic approach to data manipulation, analysis and visualization has heavily influenced how I approach data problems in R. If there’s one tidyverse package that best embodies these qualities, my vote is for &lt;a href=&quot;https://purrr.tidyverse.org&quot;&gt;&lt;code&gt;purrr&lt;/code&gt;&lt;/a&gt;’s clean approach to iteration. &lt;code&gt;purrr&lt;/code&gt; goes well beyond &lt;code&gt;map&lt;/code&gt; and its variants (check out this presentation for a great sampler&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;), but it’s been far too easy to ignore anything beyond &lt;code&gt;purrr&lt;/code&gt;’s simplest functions.&lt;/p&gt;
&lt;p&gt;A while ago at work I had a great opportunity to dive deeper into &lt;code&gt;purrr&lt;/code&gt;. While demonstrating the Central Limit Theorem to some
colleagues, I whipped up a simulation of the dice-rolling experiment in R. I didn’t save the code, but it looked a lot like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;library(tidyverse)
library(purrr)
library(rlang)
library(daniel) # see https://gitlab.com/danielspracklin/daniel

simulate_dice &amp;lt;- function(n, number_of_dice, ...) {
  seq.int(number_of_dice) %&amp;gt;%
    map(~sample(1:6, n, replace = T)) %&amp;gt;%
    as.data.frame(row.names = NULL) %&amp;gt;%
    rowwise() %&amp;gt;%
    summarize(average_of_dice = sum(c_across(where(is.numeric))) / {{number_of_dice}},
              number_of_dice = {{number_of_dice}})
}

clt_plotter &amp;lt;- function(df, x_value, facet_value) {
  df %&amp;gt;%
    ggplot() +
    geom_density(aes({{x_value}}, fill = &quot;1&quot;), colour = &quot;black&quot;) +
    scale_fill_daniel() +
    facet_wrap(vars({{facet_value}})) +
    theme_daniel() +
    guides(fill = F) +
    labs(x = &quot;Sampling distribution of the mean&quot;,
          y = &quot;Density&quot;)
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And here’s the output. The wiggles in the &lt;code&gt;number_of_dice = 1&lt;/code&gt; facet are a necessary evil if we want to show the smooth behaviour for larger numbers of dice without customizing the density plots’ bandwidth and kernel.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set.seed(613)
1:9 %&amp;gt;%
  map_dfr(~simulate_dice(10000, .x)) %&amp;gt;%
  clt_plotter(., x_value = average_of_dice, facet_value = number_of_dice)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/old%20version%20output-1.webp&quot; alt=&quot;Old version of output.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;simulate_dice&lt;/code&gt; code is functional but hacky:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Heavy reliance on dataframes here is a crutch, since we have to use the very slow &lt;code&gt;rowwise&lt;/code&gt; operation to create a column containing the mean of each set of thrown dice.&lt;/li&gt;
&lt;li&gt;Inserting the number of dice thrown as its own column is an ugly way to prepare to facet the &lt;code&gt;clt_plotter&lt;/code&gt; visualization.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We can do better than this, and in the process learn more about the power of &lt;code&gt;purrr&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We’ll start by writing a function that doesn’t immediately coerce everything to a dataframe. Instead, we’ll keep the results as a list as long as possible. To add the vectors element-wise, we can use &lt;code&gt;purrr::reduce&lt;/code&gt; to avoid &lt;code&gt;rowwise&lt;/code&gt; and &lt;code&gt;mutate&lt;/code&gt;. (Since addition is associative, we don’t need to specify the &lt;code&gt;.dir&lt;/code&gt; argument for &lt;code&gt;reduce&lt;/code&gt;.) I also wrote a division function, &lt;code&gt;vector_division&lt;/code&gt;, to get the mean of each set of thrown dice, although there’s likely a more idiomatic way to do this.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;simulate_dice_list &amp;lt;- function(n, number_of_dice, ...) {

  vector_division &amp;lt;- function(x, divisor) {x / divisor}

  seq.int(number_of_dice) %&amp;gt;%
    map(~sample(1:6, n, replace = T)) %&amp;gt;%
    reduce(`+`) %&amp;gt;%
    map(~vector_division(.x, {{number_of_dice}})) %&amp;gt;%
    unlist()
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now let’s compare the outputs to confirm that they’re identical. Since the new version doesn’t produce a dataframe, we’ll have to wrangle it into shape. &lt;code&gt;enframe&lt;/code&gt; gives us a nested dataframe that requires &lt;code&gt;unnest&lt;/code&gt;-ing. As we can see, the results are identical.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set.seed(613)
old_version &amp;lt;- 1:9 %&amp;gt;%
  map_dfr(~simulate_dice(10000, .x))

set.seed(613)
new_version &amp;lt;- 1:9 %&amp;gt;%
  map(~simulate_dice_list(10000, .x)) %&amp;gt;%
  enframe(.) %&amp;gt;%
  unnest(value)

identical(old_version$average_of_dice,
          new_version$value)

## [1] TRUE
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So which is better? It all comes down to performance, which I assessed quickly with &lt;code&gt;microbenchmark&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;library(microbenchmark)

set.seed(613)
benchmark &amp;lt;- microbenchmark(
  old_version = 1:9 %&amp;gt;%
    simulate_dice(100, .x),
  new_version = 1:9 %&amp;gt;%
    simulate_dice_list(100, .x) %&amp;gt;%
    enframe(.) %&amp;gt;%
    unnest(value))

benchmark

## Unit: milliseconds
##         expr       min        lq     mean   median       uq       max neval
##  old_version 23.097471 36.879219 57.42355 54.53358 72.07341 131.73285   100
##  new_version  5.350244  7.995392 15.33288 13.58652 19.48240  67.29409   100

autoplot(benchmark) +
  theme_daniel()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/microbenchmark-1.webp&quot; alt=&quot;Microbenchmark results.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The difference is drastic: &lt;code&gt;rowwise&lt;/code&gt;, while easy to pluck from the grab bag of &lt;code&gt;dplyr&lt;/code&gt; tools, is indeed much slower than using lists.&lt;/p&gt;
&lt;p&gt;Here’s the final code. As a bonus, we can avoid the &lt;code&gt;summarize(number_of_dice = {{number_of_dice}})&lt;/code&gt;
code above by naming the input vector with &lt;code&gt;setNames&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set.seed(613)
setNames(c(1:9), c(1:9)) %&amp;gt;%
  map(~simulate_dice_list(10000, .x)) %&amp;gt;%
  enframe(.) %&amp;gt;%
  unnest(value) %&amp;gt;%
  clt_plotter(., x_value = value, facet_value = name)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/new%20version%20output-1.webp&quot; alt=&quot;New version of output.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;No difference in output, but faster and cleaner. It pays to use &lt;code&gt;purrr&lt;/code&gt; in conjunction with more than just dataframes!&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://hendrikvanb.gitlab.io/slides/purrr_beyond_map.html&quot;&gt;&quot;purrr beyond map&quot; (slides)&lt;/a&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>A second brain experiment</title><link>https://danielspracklin.com/posts/a-second-brain-experiment/</link><guid isPermaLink="true">https://danielspracklin.com/posts/a-second-brain-experiment/</guid><description>thoughts on building a second brain</description><pubDate>Wed, 14 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Lacunae&lt;/h2&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I&apos;ve been using&amp;lt;/span&amp;gt; &lt;a href=&quot;https://gettingthingsdone.com&quot;&gt;Getting Things Done&lt;/a&gt; (GTD) for years. As a productivity tool I find it peerless, and it&apos;s now instinctual to transform even the most complex professional and personal projects into a connected graph of next actions. But when it came to more creative, extemporaneous, and architectural work, I&apos;d occasionally feel blocked by an unpleasant &lt;em&gt;presque vu&lt;/em&gt;. Broadly speaking I knew what I was trying to achieve, but my brain would sometimes fail me when it came time to articulate ideas at a low level: I&apos;d forget a specific term that I&apos;d wanted to use, or I&apos;d fail to find the most harmonious way of assembling ideas into a whole.&lt;/p&gt;
&lt;p&gt;A couple of months ago I realized that the problem I was facing was analogous to one that GTD is intended to solve. As GTD frames the problem, many people manage to &lt;em&gt;capture&lt;/em&gt; ideas in some sort of system, but they never &lt;em&gt;clarify&lt;/em&gt; whether and how those nagging to-dos and projects can actually be actioned. I saw that I&apos;d been doing the same thing with knowledge: capturing ideas from blog posts and textbooks and Hacker News threads, but never methodically deciding when, how or why I&apos;d want to return to those ideas. The information had been captured but consigned to some dimly lit corner of my long-term memory.&lt;/p&gt;
&lt;p&gt;This is much too large a project to be finished in a day, or even a year, so I&apos;ve aligned it with my third horizon of focus. In this new series of blog posts, I&apos;ll explore my continuing efforts to tackle this third horizon: truly clarifying what I&apos;m learning.&lt;/p&gt;
&lt;h2&gt;The big ideas&lt;/h2&gt;
&lt;p&gt;I started by doing what seemed most natural to me: reading about how others have approached the problem. Unfortunately, this didn&apos;t solve much for me. More precisely, I had a hard time understanding most of the instructional literature on the subject. There&apos;s no shortage of articles and forum discussions that tout the advantages of knowledge bases like second brains, Zettelkasten and so on, but I found them generally handwavy -- they often focused on technical implementation details at the expense of a succinct bigger-picture philosophy.&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; In particular, many Zettelkasten articles I skimmed spent a great deal of time discussing the physical structure of one&apos;s system: identifying methods to label and link notes in real space, demonstrating how the space constraint imposed by a 3×5 index card forces note atomicity, etc. These discussions were useful, but I needed to be convinced that the implementation of the system was more tightly coupled with the objective it was trying to achieve.&lt;/p&gt;
&lt;p&gt;The best ideas I sampled adjoined Tiago Forte&apos;s &lt;a href=&quot;https://fortelabs.com/blog/basboverview/&quot;&gt;&quot;Building a Second Brain&quot; system&lt;/a&gt;. While BASB did not unconditionally satisfy my &quot;clarify&quot; criterion, it came close thanks to the extremely concrete practices it suggested. In order to make the system even more useful for me, I set out to supplement it with some principles from GTD and from other domains I&apos;d used fruitfully in organizational projects. The following is an incomplete list of principles that I&apos;ve settled on.&lt;/p&gt;
&lt;h3&gt;A knowledge base should be systemic&lt;/h3&gt;
&lt;p&gt;It should come as no surprise that I&apos;ve used the word &lt;em&gt;system&lt;/em&gt; throughout this post, because the kind of expansive, all-encompassing knowledge base I&apos;ve been describing &lt;em&gt;is&lt;/em&gt; a system. By system I don&apos;t merely mean a group of interconnected parts, but rather a complex entity that&apos;s animated entirely by the &lt;em&gt;interactions&lt;/em&gt; among its constituents. To borrow an idea from &lt;a href=&quot;https://en.wikipedia.org/wiki/System_dynamics&quot;&gt;system dynamics&lt;/a&gt;, any knowledge base of sufficient complexity will operate via and create unexpected feedback loops. It would be wrong to think of this system only as an output that follows mechanistically from our actions. In other words, the act of writing is both a cause &lt;em&gt;and&lt;/em&gt; an effect of what we write. So conditioning on the structure of a system is key; otherwise, the system would get cause and effect exactly backwards. For example, GTD is useful to me precisely because it advances a solution to the feedback loop initialized by an anxious mind that reminds me of &lt;em&gt;stuff&lt;/em&gt; at 3 am. I want a knowledge base to be aware of this kind of feedback and offer an analogous solution.&lt;/p&gt;
&lt;h3&gt;A knowledge base should build trust, not anxiety&lt;/h3&gt;
&lt;p&gt;To make this idea of a systemic knowledge base more precise, I considered the various kinds of balancing and reinforcing feedback that would define the system. The first and most obvious feedback loop is what I&apos;ll call the &lt;em&gt;trust cycle&lt;/em&gt;. If I used the knowledge base only when it felt convenient, then its contents would necessarily be incomplete and fragmented, and more importantly I would never fully trust what I&apos;d written. I&apos;d always have to consult my mid- or long-term memory to fill in the gaps, which I was loath to do for GTD reasons.&lt;/p&gt;
&lt;h3&gt;A knowledge base should reinforce habits&lt;/h3&gt;
&lt;p&gt;I knew that I&apos;d have to consider more than architectural principles in order to build trust. To make the system operational, building habits would be a critical type of reinforcing feedback. To this end, I set up a simple experiment to demonstrate that a knowledge base would actually benefit me: I used a proto-knowledge base to complete a small but concrete writing task at work.&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; Since I&apos;d always completed tasks without relying on one, I knew what challenges I&apos;d have faced without it -- more on these in the next bullet. If the knowledge base were helpful, it would remove, or at least displace, some of those unpleasant parts of creative work. The experiment was not terribly data-driven, but it demonstrated to me that at the very least I &lt;em&gt;could&lt;/em&gt; solve creative problems with a knowledge base. Due to the informal nature of the experiment, the proto-knowledge base wasn&apos;t a resounding success, but it got me over the initial hurdle of establishing a habit.&lt;/p&gt;
&lt;h3&gt;A knowledge base should support my creative process&lt;/h3&gt;
&lt;p&gt;When I write, I tend to grab ideas from a variety of disciplines, connect them in interesting ways, turn the nodes of the resulting connected graph into sentence fragments, then rearrange them on a page until I have a rough structure. Then writing is easy: it&apos;s just a matter of fleshing out fragments into sentences and paragraphs, and restructuring the resulting text. The downside of this approach is that it takes a lot of time: extended hours spent brainstorming, many editing passes required to ensure that the process of turning fragments into paragraphs hasn&apos;t subtly changed the message.&lt;/p&gt;
&lt;p&gt;How could a knowledge base help here? It would need to display connections between key ideas so that I wouldn&apos;t have to manually link them during the writing process. But on the other hand, if the knowledge base were &lt;em&gt;too&lt;/em&gt; pre-structured, then it might not be malleable enough to support a variety of forms of creative work. This is where Tiago Forte&apos;s idea of progressive summarization&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; comes into play. Progressive summarization cuts right to the heart of the &lt;em&gt;clarify&lt;/em&gt; step by explicitly structuring knowledge to be &lt;em&gt;forwarded through time&lt;/em&gt;. If at some point in the future I want to write something creative, relatively unencumbered by existing structure, then I can use what Forte calls the &quot;mini-summary&quot; component. On the other hand, if I&apos;d like to draft something more formal, perhaps with quotes and references, then a combination of the &quot;remix&quot; component and bolded or highlighted passages offers plenty of structure. The key is that progressive summarization prepares &lt;em&gt;today&apos;s&lt;/em&gt; knowledge base for a variety of &lt;em&gt;future&lt;/em&gt; use cases. The danger of this approach is that it could lead to artificial complexity, which leads me to my next point.&lt;/p&gt;
&lt;h3&gt;A knowledge base should not be over-engineered&lt;/h3&gt;
&lt;p&gt;This might seem like a relatively unimportant principle, but from personal experience with wikis it&apos;s worth including. For example, Wikipedia&apos;s guidelines on linking&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; are clear that too much administrative structure makes knowledge incomprehensible.&lt;sup&gt;&lt;a href=&quot;#fn5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; Much like jazz chording notation, I prefer a simple system that lets me riff off basic ideas to one that&apos;s been heavily optimized for only one goal.&lt;/p&gt;
&lt;h2&gt;Next&lt;/h2&gt;
&lt;p&gt;In my next post, I&apos;ll talk about how I&apos;m aiming to give effect to these design principles, and where my ideas could benefit from further precision.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;For me, &lt;em&gt;Getting Things Done&lt;/em&gt; remains the gold standard; David Allen sets out GTD&apos;s high-level value proposition in Chapter 1 in a crisp, concise way that I can&apos;t argue with. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The particular task doesn&apos;t matter for the purpose of this post. However, if you&apos;re interested, it was writing process documentation that I primarily intended to use myself, with the possibility of sharing with new team members down the road. The experiment was admittedly contrived because I didn&apos;t &lt;em&gt;already&lt;/em&gt; have a KB on which to rely, but the act of contributing to one likely laid the groundwork for habit formation. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tiago Forte, &lt;a href=&quot;https://fortelabs.com/blog/progressive-summarization-a-practical-technique-for-designing-discoverable-notes/&quot;&gt;&quot;Progressive Summarization: A Practical Technique for Designing Discoverable Notes&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Linking#What_generally_should_not_be_linked&quot;&gt;Wikipedia&apos;s Manual of Style on linking&lt;/a&gt;. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;See especially the following quote: &quot;A good question to ask yourself is whether reading the article you&apos;re about to link to would help someone understand the article you are linking from.&quot; &lt;a href=&quot;#fnref5&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Ergodox EZ month 5: ctrl issues</title><link>https://danielspracklin.com/posts/ergodox-month-five-ctrl-issues/</link><guid isPermaLink="true">https://danielspracklin.com/posts/ergodox-month-five-ctrl-issues/</guid><description>impressions of the Ergodox EZ after five months of use</description><pubDate>Wed, 23 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is the third entry in an ongoing series chronicling my adventures with the Ergodox EZ keyboard. See posts on &lt;a href=&quot;https://danielspracklin.com/posts/ergodox-ez-the-first-two-months/&quot;&gt;months 1 and 2&lt;/a&gt;, and &lt;a href=&quot;https://danielspracklin.com/posts/checking-in-with-the-ergodox-ez-month-four/&quot;&gt;months 3 and 4&lt;/a&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;To what extent&amp;lt;/span&amp;gt; are ergonomic keyboards so named because they slow your typing speed to hand-friendly levels? That question has been the theme of month 5 with the Ergodox EZ.&lt;/p&gt;
&lt;h2&gt;Control&lt;/h2&gt;
&lt;p&gt;On my main layer I&apos;ve mapped space to the left &lt;code&gt;2u&lt;/code&gt; key on the left-hand board. Holding the key for a user-customizable length of time modifies it to left Control; in QMK-speak this is &lt;code&gt;LCTL_T(KC_SPACE)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/ergodoz-ez-lctl-t-kc-space.webp&quot; alt=&quot; in the Oryx graphical configurator&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This configuration is great at reducing hand motion -- no more pinky-stretching to the far left of the keyboard. But I&apos;ve discovered that it comes at a price: over the past month I&apos;ve accidentally hit space instead of Control-something several times a day. It happens when saving documents, selecting a body of text, running code, opening new tabs, you name it. While these aren&apos;t catastrophic issues, it is annoying to see all of your code disappear in a flash, and doubly annoying to have to undo them with the same Control key that caused the problem.&lt;/p&gt;
&lt;p&gt;I thought that I might have been jumping the gun on the subsequent keystroke, so I tried decreasing the auto shift timeout to 135 milliseconds. But this hasn&apos;t substantially decreased my Control error rate so far. Further, around the same time as the Control issue, I experienced some bouncing on the &lt;code&gt;KC_SPACE&lt;/code&gt; key. This seems to have been resolved by increasing the debounce delay to 35 milliseconds, so I&apos;m not sure that it&apos;s related, but I tend to be wary when two things go wrong at the same time.&lt;/p&gt;
&lt;p&gt;So while I can&apos;t know for sure if it&apos;s mere impatience or something gone awry, either way I&apos;m re-evaluating the idea of overloading keys with modifiers. I think there are four reasonable solutions here.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Further decrease auto shift timeout&lt;/strong&gt;. I&apos;m now experimenting with an auto shift timeout of 125 milliseconds. I&apos;m not sure whether a 10-millisecond difference falls above or below the temporal &lt;a href=&quot;https://en.wikipedia.org/wiki/Just-noticeable_difference&quot;&gt;just-noticeable difference&lt;/a&gt;, but consider this an impromptu experiment!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Move Control to the Extend layer&lt;/strong&gt;. In fact I&apos;ve already mapped Control to Extend, on the Colemak &lt;code&gt;s&lt;/code&gt; key (&lt;code&gt;KC_LCTRL&lt;/code&gt; on &lt;code&gt;KC_S&lt;/code&gt;); it&apos;s just a matter of using it consistently. There&apos;s no auto shift delay to reach the Extend layer, so the extra key press to get there might actually save me some time. However, it means I won&apos;t be able to use this approach to save my work, as the &lt;code&gt;s&lt;/code&gt; key will have been overwritten. I would need to create a one-shot Extend layer to surmount this,&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; or create a &quot;save my work&quot; macro key and plunk it somewhere on the bottom row. I&apos;ll call this one a strong &lt;em&gt;maybe&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Move Control elsewhere on L0&lt;/strong&gt;. I&apos;ve got five empty keys on the bottom row, and another five on the thumb clusters. I could easily give Control a dedicated key. However, the thumb cluster keys don&apos;t seem ideal here, because I&apos;d have to shift my entire hand to move my thumb high enough. The bottom-row keys are better candidates, but then my setup would be no better than the non-ergonomic one that was giving me pinky pain. So this isn&apos;t my preferred solution, but I&apos;ll keep it in my back pocket.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Change modifier philosophies&lt;/strong&gt;. I&apos;ve been playing with &lt;a href=&quot;https://github.com/manna-harbour/miryoku&quot;&gt;Miryoku&lt;/a&gt;, a minimalist layout that moves modifiers to the home row. This approach wouldn&apos;t solve the auto shift issue, but removing modifiers from the frequently used &lt;code&gt;KC_SPACE&lt;/code&gt; key could help. Whether this is viable over the long term remains to be seen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As always, experimenting with the Ergodox EZ raises more questions than answers; we shall see what month 6 brings.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I&apos;d have a similar problem with selecting all text, as Extend-Shift is mapped to the same key as Colemak &lt;code&gt;a&lt;/code&gt;. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>My coffee setup</title><link>https://danielspracklin.com/posts/my-coffee-setup/</link><guid isPermaLink="true">https://danielspracklin.com/posts/my-coffee-setup/</guid><description>How I make coffee</description><pubDate>Sat, 12 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m interrupting my semi-regularly scheduled Ergodox programming with a post about something else that lends itself to constant tinkering: coffee!&lt;/p&gt;
&lt;h2&gt;Beans&lt;/h2&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I&apos;ve been drinking coffee&amp;lt;/span&amp;gt; since my undergraduate days (instant Nescafé and Starbucks when I could afford it), but nowadays I almost exclusively use beans from &lt;a href=&quot;https://www.lvcoffee.ca&quot;&gt;Little Victories Coffee Roasters&lt;/a&gt;. They do a lot of nice third-wave light roasts with interesting single origin beans. Right now I&apos;m drinking two Colombians: a very funky washed Pink Bourbon&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; and a sugar process decaf from the Amigos del Huila collective. They come in standard 340-gram bags that I typically power through in ten to fourteen days, so I don&apos;t worry so much about air exposure. However, I do keep them away from sunlight or areas prone to temperature fluctuations.&lt;/p&gt;
&lt;h2&gt;Storage&lt;/h2&gt;
&lt;p&gt;I store two more 340-gram bags in an Airscape Kilo. I just throw the bags themselves in, so I don&apos;t have to worry about whether I want to commingle beans. Because I&apos;m not storing my in-use bag in the Airscape, I open the container only every couple of weeks. My working theory is that this impedes oxidation, and although I cannot be sure, the Kilo displaces air nicely,&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; and it&apos;s certainly nicer (and nicer looking) than nothing at all.&lt;/p&gt;
&lt;h2&gt;Grinding&lt;/h2&gt;
&lt;p&gt;I&apos;ve used several grinders over the years, starting with a Hario Skerton and Hario Mini Mill.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; The idea was to stick with manual grinders that played nicely with my preferred brewing methods, and that I could easily shuttle between the office and home. But once I moved to espresso, I grew dissatisfied with the grind consistency, and made the switch to a Comandante C-40 with the Red Clix espresso axle. Without the Red Clix, the Comandante is a 30-micron stepped grinder, which in my tests was fine for AeroPress brews, but it didn&apos;t always give me the flexibility I wanted for espresso. The Red Clix axle&apos;s step distance of 15 microns is more than precise enough to dial in espresso.&lt;/p&gt;
&lt;p&gt;I thought about getting a non-manual grinder back in March, but discarded the idea largely due to cost: an electric grinder equivalent in quality to the Comandante could easily be twice the price. On these terms, the convenience of a 15-second grind just isn&apos;t worth it, and at any rate I&apos;ve come to enjoy the tactile experience of grinding beans myself.&lt;/p&gt;
&lt;h2&gt;Brewing&lt;/h2&gt;
&lt;p&gt;I use an AeroPress and a Flair Pro 2.&lt;/p&gt;
&lt;p&gt;The Flair Pro 2 is my kind of espresso &quot;machine&quot;: it&apos;s cheap,&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; relatively portable, and it produces tasty and endlessly tweakable shots. By directly exposing water temperature, pressure and brew time to the user, it turns espresso into a puzzle with virtually endless combinations.&lt;sup&gt;&lt;a href=&quot;#fn5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; The pro model&apos;s pressure gauge is pretty nice too. I typically aim for a 40- to 45-second extraction.&lt;/p&gt;
&lt;p&gt;The Aeropress is reserved for times when I&apos;m lazy, travelling, or drinking older beans. I use the standard method and typically brew fauxspresso: fine grind, pour just-off-the-boil water up to the &lt;code&gt;2&lt;/code&gt; marker, wait 15 seconds for bloom, then push. It&apos;s nearly impossible to mess up, so long as you don&apos;t accidentally knock the thing over.&lt;/p&gt;
&lt;h2&gt;Sundries&lt;/h2&gt;
&lt;p&gt;Ottawa&apos;s water is soft&lt;sup&gt;&lt;a href=&quot;#fn6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; and pleasantly drinkable. I run it straight from the tap into a boring electric kettle.&lt;/p&gt;
&lt;p&gt;Nothing fancy in terms of drinkware, just a couple of double-walled espresso glasses that show off the crema quite nicely.&lt;/p&gt;
&lt;p&gt;I also have a simple scale that measures to the nearest tenth of a gram. I don&apos;t use it much now that I&apos;ve dialed in my espresso, but it&apos;s there if I need it.&lt;/p&gt;
&lt;h2&gt;What&apos;s missing?&lt;/h2&gt;
&lt;p&gt;As I&apos;ve pointed out above, espresso is more or less infinitely customizable, even with a top-of-the-line machine that gets pressure and temperature just right every time. Although on a basic level I&apos;ve figured out how to pull decent espresso with the tools at my disposal, I know I could do &lt;em&gt;so much better&lt;/em&gt;. How to get there? The most natural idea is with data. Ideally I&apos;d have a simple, non-frictiony way to capture the technical specs of a shot (water temperature, pressure, brew time, grind size and consistency, dose, etc.), measure the extraction and the &lt;a href=&quot;https://en.wikipedia.org/wiki/Coffee_extraction&quot;&gt;TDS&lt;/a&gt;, and record the subjective stuff: notes, acidity, mouthfeel, and so on.&lt;/p&gt;
&lt;p&gt;The problem is that there&apos;s no easy way to do this. Some smart scales have Bluetooth-enabled apps that capture basic input data, but from what I&apos;ve seen the apps tend to be buggy and not terribly user-friendly. Collecting the more technical data typically requires specialized equipment; even outside of the chemistry lab, data-driven espresso machines like the &lt;a href=&quot;https://decentespresso.com&quot;&gt;Decent&lt;/a&gt; fetch a hefty price. But while the technical data is beyond me at this point, I still think there&apos;s got to be an easier way to collect at least some of this stuff, and thereby improve the quality of my espresso. We&apos;ll see what I come up with!&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://library.sweetmarias.com/glossary/pink-bourbon/&quot;&gt;Pink Bourbon&lt;/a&gt; in the Sweet Maria&apos;s coffee library. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I&apos;ve heard that vacuum canisters are even better for coffee storage, though I haven&apos;t tested any. If you want to dive headlong down the rabbit hole, popular coffee YouTuber James Hoffmann has posted an &lt;a href=&quot;https://www.youtube.com/watch?v=K0JWuhE8a-w&quot;&gt;extremely thorough review of coffee storage devices&lt;/a&gt; that&apos;s well worth your time. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Today I use the Skerton to grind peppercorns and other spices, as it&apos;s so easy to wash the ceramic burrs. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At least in a world where dropping five figures on a La Marzocco is not only an option but an actively tempting one. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The joy of solving puzzles that I&apos;m describing is more or less straight out of Rands&apos; blog post about &lt;a href=&quot;https://randsinrepose.com/archives/the-nerd-handbook/&quot;&gt;the &quot;Nerd Handbook&quot;&lt;/a&gt;. &lt;a href=&quot;#fnref5&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In 2020, Ottawa&apos;s water had &lt;a href=&quot;https://web.archive.org/web/20210425150541/https://documents.ottawa.ca/sites/documents/files/2020_wq_summary_lemieux_island.pdf&quot;&gt;just over 30 mg/L of CaCO&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;/a&gt;. &lt;a href=&quot;#fnref6&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Checking in with the Ergodox EZ: month 4</title><link>https://danielspracklin.com/posts/checking-in-with-the-ergodox-ez-month-four/</link><guid isPermaLink="true">https://danielspracklin.com/posts/checking-in-with-the-ergodox-ez-month-four/</guid><description>impressions of the Ergodox EZ and Colemak after four months of use</description><pubDate>Fri, 28 Aug 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Four months in&lt;/h2&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;I&apos;ve been using&amp;lt;/span&amp;gt; an Ergodox EZ for almost four months now. Long story short, everything is smoother than it was &lt;a href=&quot;https://danielspracklin.com/posts/ergodox-ez-the-first-two-months/&quot;&gt;two months ago&lt;/a&gt;, but there&apos;s a lot left to optimize.&lt;/p&gt;
&lt;h2&gt;Extend and other layers&lt;/h2&gt;
&lt;p&gt;If there&apos;s one complaint I have about the Ergodox EZ, it&apos;s the sheer number of keys. I still don&apos;t have a concrete plan for half of the thumb cluster,&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; the inner &lt;code&gt;1.5u&lt;/code&gt; keys, or much of the bottom row, due to continued indecision about typing philosophy: should I stuff the base layer full of things, or go the spartan route and consign less-used keys to higher layers? I&apos;m leaning toward minimalism but have yet to fully commit.&lt;/p&gt;
&lt;p&gt;That&apos;s a small quibble though, and on the whole I&apos;m really enjoying iteratively improving my layers. The major change since month 2 has been moving Colemak to the base layer and removing the &lt;code&gt;TG&lt;/code&gt; triggers from the inner columns; now, layer switching always starts with the thumb clusters or bottom row.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/ergodox-ez-take-one-base-2020-08-28.webp&quot; alt=&quot;My new base layer&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On the function layer, I&apos;ve mapped a shifted version of the numpad to the left hand. This has remained mostly unused so far, but I hope to incorporate it into my programming routine at some point. Another thing I&apos;m keen to try is ditching the number row and relying on my function layer&apos;s numpad. The functionality&apos;s been there since day 1; I just need to convince myself to switch cold turkey. I may end up removing the numbers from the base layer entirely, although I suppose that could make some passwords harder to type.&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/ergodox-ez-take-one-fn-2020-08-28.webp&quot; alt=&quot;The function layer&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The Extend layer has proven to be invaluable. Mass-selecting and copying or deleting text is easy with &lt;code&gt;Extend-A-[IJKL]-[CP]&lt;/code&gt; (&lt;em&gt;A&lt;/em&gt; maps to &lt;em&gt;Shift&lt;/em&gt;, &lt;em&gt;C&lt;/em&gt; maps to &lt;em&gt;Copy&lt;/em&gt;, and &lt;em&gt;P&lt;/em&gt; maps to &lt;em&gt;Delete&lt;/em&gt;), and the Extend versions of cut, copy and paste are actually faster than holding the left thumb cluster for 150 milliseconds to trigger &lt;code&gt;Ctrl&lt;/code&gt;. I&apos;ve also implemented mouse control on the Extend layer, though I don&apos;t have a real use case for it yet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/ergodox-ez-take-one-extend-2020-08-28.webp&quot; alt=&quot;The Extend layer&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One of Oryx&apos;s newest features is the ability to easily pass alt-code text with the &quot;Hold Alt pressed&quot; option. This is a boon for those situations where I&apos;m typing in French. Before this feature, I had to hit &lt;code&gt;Alt-MO2-1-3-0&lt;/code&gt; to produce &lt;em&gt;é&lt;/em&gt;; now it&apos;s as simple as &lt;code&gt;MO4-e&lt;/code&gt;. I&apos;m not yet sure where to place all the accented &lt;em&gt;e&lt;/em&gt; variants, but there&apos;s plenty of room on my fourth layer to experiment.&lt;/p&gt;
&lt;h2&gt;Colemak&lt;/h2&gt;
&lt;p&gt;At this point I&apos;m very close to my pre-Ergodox QWERTY speed of 120 words per minute, and I&apos;ve developed enough Colemak muscle memory to blaze through simple text with a burst speed of 130–140 wpm. I&apos;ve also taken to using &lt;a href=&quot;https://monkeytype.com&quot;&gt;Monkey Type&lt;/a&gt; on Master mode, which forces a restart with every mistake. The restart itself isn&apos;t particularly helpful,&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; but it serves as a reminder to prioritize accuracy, not absolute speed. A couple days ago I tried a QWERTY Monkey Type test on my MacBook Pro, and it finally struck me how &lt;em&gt;much&lt;/em&gt; my hands had to move. QWERTY really is an unoptimized layout: what is &lt;em&gt;J&lt;/em&gt; doing in home row anyway?&lt;/p&gt;
&lt;p&gt;With mastery comes the desire to beat a new challenge, and accordingly I&apos;ve been mulling over DH and DHm. I don&apos;t find the &lt;em&gt;HE&lt;/em&gt; bigram terribly difficult to execute on vanilla Colemak,&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; but I&apos;ve definitely noticed that I type &lt;em&gt;the&lt;/em&gt; and &lt;em&gt;and&lt;/em&gt; more slowly than I would on a mod. The optimization space is more constrained now that I&apos;ve applied the easiest fix by ditching QWERTY, but there&apos;s still room to improve. And that&apos;s the ultimate point of the Ergodox: iteratively building a layout that&apos;s perfect for me.&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The recently unveiled Moonlander is pretty enviable in this regard, but I&apos;m also got an eye on the Kyria. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At a certain point, removing &lt;em&gt;too&lt;/em&gt; much from the board will frustrate the purpose of using an Ergodox. Some part of me thinks I&apos;d be better off keeping the Ergodox as a maximalist board and building a Kyria or a Gergoplex to indulge my stripped-down whims. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In fact, Master mode is arguably &lt;em&gt;detrimental&lt;/em&gt;, since you never get the chance to identify and correct your mistakes. &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have no hard evidence to support this assertion, but I tend to find words containing &lt;em&gt;p&lt;/em&gt; and &lt;em&gt;b&lt;/em&gt; (think &lt;em&gt;public&lt;/em&gt;) the trickiest to type. It&apos;s all very strange to me, since &lt;em&gt;b&lt;/em&gt; doesn&apos;t move on Colemak relative to QWERTY. &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item><item><title>Ergodox EZ: the first two months</title><link>https://danielspracklin.com/posts/ergodox-ez-the-first-two-months/</link><guid isPermaLink="true">https://danielspracklin.com/posts/ergodox-ez-the-first-two-months/</guid><description>impressions of the Ergodox EZ and Colemak after two months of use</description><pubDate>Thu, 09 Jul 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;The start&lt;/h2&gt;
&lt;p&gt;&amp;lt;span class=&quot;newthought&quot;&amp;gt;This February I felt&amp;lt;/span&amp;gt; a twinge of pain in my right wrist. The last time this had happened was in high school, when I strained my wrist while practicing the piano five hours a day and ended up wearing a wrist brace for the rest of the year. But I wasn&apos;t at the piano much in February, so this was something different.&lt;/p&gt;
&lt;p&gt;It turns out that a couple of things were causing the pain. The first was my keyboard setup: a lot of typing on a stock Microsoft board perched on a desk-mounted keyboard tray that required me to tuck my elbows in to avoid my chair&apos;s armrests. At home, I found myself contorting my hands to fit a MacBook Pro keyboard. I&apos;d tended to brush off the resulting minor aches and pains, figuring they would disappear with time. But this time they didn&apos;t.&lt;/p&gt;
&lt;p&gt;The second cause was &lt;em&gt;how&lt;/em&gt; I was typing. I&apos;d actually never learned to touch type, instead developing an unholy version of an &lt;a href=&quot;https://colemakmods.github.io/ergonomic-mods/angle.html&quot;&gt;angle mod&lt;/a&gt; by seriously fudging the fingering for nearly half the keys on the board. Despite having practiced piano scales (with the correct fingering!) for hundreds of hours, I almost never used my pinkies on the computer keyboard keys they were supposed to hit, and I adopted strange tricks like sliding a finger across keys in one smooth movement as a speed boost.&lt;sup&gt;&lt;a href=&quot;#fn1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; While the system worked for me, it came at a cost. Although I was able to work at 110 to 120 words per minute on a good day, I began to find that my fingers would tense up as I typed, meaning I couldn&apos;t always get into a &lt;a href=&quot;https://en.wikipedia.org/wiki/Flow_(psychology)&quot;&gt;flow state&lt;/a&gt;. And extensive work in R and R Markdown, with their abundance of backticks and underscores, meant that my wrists had to move to accommodate my rigid-finger typing system.&lt;/p&gt;
&lt;p&gt;I&apos;d recognized these problems for some time but in February I actually started looking at more properly ergonomic setups. I briefly tried a Kinesis Freestyle, which was generally fine, but the lack of a numpad bothered me. Then the pandemic hit, and after a couple of weeks of shoving my wrists together on a laptop keyboard as part of a hastily assembled work-from-home setup, I decided to get serious about improving my work setup.&lt;/p&gt;
&lt;h2&gt;Making the (key)switch&lt;/h2&gt;
&lt;p&gt;I ordered an &lt;a href=&quot;https://ergodox-ez.com&quot;&gt;Ergodox EZ&lt;/a&gt; in early April and had it on my desk in under two weeks. I&apos;d never used a mechanical keyboard long-term, so I opted for fairly safe Cherry Red keyswitches, and sprang for the glow model with a tent kit. The first two challenges I encountered were the ortholinear keys&lt;sup&gt;&lt;a href=&quot;#fn2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; and the unusual placement of modifiers. The latter was quick to fix by playing with the Ergodox&apos;s built-in &lt;a href=&quot;https://configure.ergodox-ez.com&quot;&gt;Oryx graphical configurator&lt;/a&gt;. I started with a vanilla layout, then tried moving frequently used whitespace and text removal keys &lt;a href=&quot;https://configure.ergodox-ez.com/ergodox-ez/layouts/e94Ry/XEDw6/0&quot;&gt;to the thumb clusters&lt;/a&gt;. I also made an Oryx macro to generate the R &lt;code&gt;magrittr&lt;/code&gt; pipe (&lt;code&gt;%&amp;gt;%&lt;/code&gt;) from an inner 1u or 1.5u key.&lt;sup&gt;&lt;a href=&quot;#fn3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The ortholinear keys were more challenging to adapt to. Unlearning my angle mod hacks was slow going, but I managed to hit 40 or 50 wpm on the Ergodox by the end of week 1. That&apos;s when I decided to make a far more fundamental switch: Colemak. One of my main reasons for choosing Colemak over, say, Dvorak, was that I wanted to avoid as much finger travel as humanly possible -- less finger movement would also mean less wrist movement. I also thought it useful to keep frequently used punctuation and keyboard shortcut keys (period, comma, A, Z, X, C and V) in the same place, and in this respect Colemak seemed a happy medium between ease of adoption, portability and efficiency.&lt;sup&gt;&lt;a href=&quot;#fn4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I did come to discover that it&apos;s pretty annoying to type single-finger bigrams on an ortholinear board, especially when you&apos;re used to sliding your finger across the keys so easily. I was lucky to have chosen a layout that tries to minimize such bigrams, at least relative to QWERTY and Dvorak. I think there&apos;s still room for improvement here, probably most easily through the Colemak-DH mod.&lt;/p&gt;
&lt;p&gt;I was also keen to retain QWERTY fluency, since Colemak isn&apos;t supported on Windows by default, and since I never knew when I might find myself at a QWERTY board. My solution was to keep my MacBook on QWERTY and build a custom Colemak layer on the Ergodox. With this approach, progress was slower than if I&apos;d jumped to Colemak cold turkey, but I&apos;ve managed to retain QWERTY proficiency since day one of Colemak, albeit at a slower maximum wpm. I used the usual suspects to teach myself Colemak:  &lt;a href=&quot;https://www.learncolemak.com&quot;&gt;learncolemak.com&lt;/a&gt;, &lt;a href=&quot;https://colemak.com/Typing_lessons&quot;&gt;colemak.com&lt;/a&gt;, &lt;a href=&quot;https://www.keybr.com&quot;&gt;keybr&lt;/a&gt; and &lt;a href=&quot;https://www.keyhero.com&quot;&gt;keyhero&lt;/a&gt;. Within a couple of weeks, I was able to match my QWERTY speeds on the Ergodox, and by the second month I was hitting 80wpm on speed tests. Not quite up to my old QWERTY scores, but close enough to use full-time at work. Writing R in Colemak isn&apos;t nearly as bad as I thought it would be, even after accounting for the &lt;code&gt;tidyverse&lt;/code&gt; muscle memory I&apos;d developed over the past couple of years.&lt;/p&gt;
&lt;h2&gt;Tweaking my layout&lt;/h2&gt;
&lt;p&gt;Editing key layouts has been largely iterative. My biggest design decisions have been enabling Auto Shift, using the thumb clusters for &lt;code&gt;Ctrl&lt;/code&gt;, &lt;code&gt;Alt&lt;/code&gt;, &lt;code&gt;Cmd&lt;/code&gt; and &lt;code&gt;Win&lt;/code&gt;, and adapting &lt;a href=&quot;https://forum.colemak.com/topic/2014-extend-extra-extreme/&quot;&gt;DreymaR&apos;s Extend layer&lt;/a&gt;. I really like Auto Shift because it means I rarely have to pinky-reach for the Shift keys, but as a result I&apos;m not able to adopt layouts that use held home row keys as modifiers. There&apos;s definitely an unresolved tension between maximizing thumb cluster and home row usage -- I generally like the thumb clusters, but I have trouble reaching some of the top 1u thumb keys without moving my hand, and I&apos;ve not yet settled on useful modifiers for those spots.&lt;sup&gt;&lt;a href=&quot;#fn5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; As a result, I&apos;ve stolen much of the bottom row for &lt;code&gt;MO&lt;/code&gt; and &lt;code&gt;OSL&lt;/code&gt; layer switches, which largely defeats the purpose of keeping modifiers off the home row. I suspect I&apos;ll have to revisit this design choice.&lt;/p&gt;
&lt;p&gt;I also went back and forth on Caps Lock. In my mind, there are four choices: Caps, Backspace, Escape or &lt;code&gt;MO&lt;/code&gt; to Extend. I discarded Caps and Backspace due to underuse and my choice to put Backspace on the right thumb cluster, respectively. I&apos;ve got a couple keys that &lt;code&gt;MO&lt;/code&gt; to Extend elsewhere, so I went with Escape. However, I&apos;ve found I hit it quite frequently when reaching for &lt;code&gt;Tab&lt;/code&gt;, and I&apos;m not a vim guy to begin with. Something else to revisit.&lt;/p&gt;
&lt;p&gt;There&apos;s a lot left to do, and even more to learn. I&apos;m much less ambivalent about Extend, the functionality of which is pretty incredible. The challenge will be to internalize these features, as I&apos;ve got quite a bit of muscle memory to unlearn. So far, I really like the scroll wheel and browse backward and forward keys. And I haven&apos;t even touched the function layer, which will be another short-term cognitive burden with an appreciable long-term gain. I suspect that work will open up entirely new main layer possibilities. Still another thing on my radar is switching to a &lt;a href=&quot;https://gitlab.com/danielspracklin/ergodox-ez/-/blob/master/keymap.c&quot;&gt;QMK keymap&lt;/a&gt; instead of Oryx to take advantage of &lt;a href=&quot;https://web.archive.org/web/20250716191349/https://thomasbaart.nl/2018/12/13/qmk-basics-tap-dance/&quot;&gt;tap dancing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/ergodox-ez-take-one-2020-07-02.webp&quot; alt=&quot;My most recent Ergodox layout&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://configure.ergodox-ez.com/ergodox-ez/layouts/e94Ry/latest/0&quot;&gt;Here&apos;s&lt;/a&gt; my most recent layout. It&apos;s sure to change over the coming weeks and months, and there&apos;s a lot of redundancy to address, but the tinkerer in me looks forward to it!&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I mostly used this trick on diagonal key pairs, like &lt;em&gt;rd&lt;/em&gt; on a QWERTY layout. So I&apos;d type &lt;em&gt;hard&lt;/em&gt; like so: &lt;em&gt;h&lt;/em&gt; with the right index finger, &lt;em&gt;a&lt;/em&gt; with the left ring finger, then &lt;em&gt;rd&lt;/em&gt; by hitting &lt;em&gt;r&lt;/em&gt; and sliding downward to &lt;em&gt;d&lt;/em&gt; with the left index finger. Probably doesn&apos;t work on a non-chiclet keyboard though. &lt;a href=&quot;#fnref1&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technically the Ergodox&apos;s keys are not &lt;em&gt;ortholinear&lt;/em&gt; but rather &lt;em&gt;weakly column-staggered&lt;/em&gt;. But practically speaking, I still think of and refer to the Ergodox as ortholinear, especially when comparing to something with a heavier column-stagger like the &lt;a href=&quot;https://blog.splitkb.com/introducing-the-kyria/&quot;&gt;Kyria&lt;/a&gt;. &lt;a href=&quot;#fnref2&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I&apos;d forgotten that RStudio has a keyboard shortcut, &lt;code&gt;Ctrl + Shift + M&lt;/code&gt;, to produce the &lt;code&gt;magrittr&lt;/code&gt; pipe, so I removed that macro from the board a few weeks later. One lesson I&apos;m still learning about custom key layouts is &lt;em&gt;bringing the keys to you&lt;/em&gt;, rather than sticking stuff on hard-to-reach edge keys. I now use those inner 1.5u keys to toggle layers (&lt;code&gt;TG&lt;/code&gt;). &lt;a href=&quot;#fnref3&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some of Martin Krzywinski&apos;s &lt;a href=&quot;https://web.archive.org/web/20231208044308/http://mkweb.bcgsc.ca/carpalx/?full_optimization&quot;&gt;carpalx layouts&lt;/a&gt; retain QWERTY-style punctuation and keyboard shortcut key placement, and are probably objectively better for weak pinkies compared to Colemak, which prioritizes finger travel at the expense of weak finger usage. I wanted to start with a simple layout that had reasonable market penetration before testing more customized layouts. But I&apos;m not writing off something like QGMLWY just yet! &lt;a href=&quot;#fnref4&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I&apos;ve been fiddling with the lighting a lot, so one of the top 1u keys on the right thumb cluster is currently a dedicated lighting on-off switch. On the one hand, that feels like a waste of valuable thumb cluster space, but on the other, I can hardly reach the key without taking my fingers off home row, so it wouldn&apos;t be viable as a modifier anyway. Others have noted &lt;a href=&quot;https://www.reddit.com/r/MechanicalKeyboards/comments/9rpd9k/ergodox_say_something_bad_about_it/&quot;&gt;similar quibbles with the thumb cluster&lt;/a&gt;, and while it&apos;s far from enough to sour my experience with the Ergodox, I still don&apos;t have a good plan for those keys. &lt;a href=&quot;#fnref5&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content:encoded></item></channel></rss>