<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blogity blog blog. Journal</title>
    <description>blogidy blog blog: random notes/thoughts/etc</description>
    <link>http://blog.onepatchdown.net/</link>
    <atom:link href="http://blog.onepatchdown.net/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Wed, 25 Feb 2026 05:25:26 +0000</pubDate>
    <lastBuildDate>Wed, 25 Feb 2026 05:25:26 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>Are Compilers Deterministic?</title>
        <description>&lt;p&gt;Betteridge says “no,” and for normal developer experience that answer is mostly right. (Also, you’re absolutely right! and here’s an em—dash so that you know that I used ChatGPT to help me write this.)&lt;/p&gt;

&lt;p&gt;Here’s my take. There’s a computer science answer and an engineering answer. The computer science answer: a compiler is deterministic as a function of its full input state. Engineering answer: most real builds do not control the full input state, so outputs drift.&lt;/p&gt;

&lt;p&gt;I worked at Ksplice back in the 2000s, where we patched running Linux kernels in RAM so you could take security updates without rebooting. Reading &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;objdump&lt;/code&gt; output of crashy kernels was not daily routine, but I had to do it often enough that “compiler output versus source intent” stopped being theoretical.&lt;/p&gt;

&lt;p&gt;Formally:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;artifact = F(
  source,
  flags,
  compiler binary,
  linker + assembler,
  libc + runtime,
  env vars,
  filesystem view,
  locale + timezone,
  clock,
  kernel behavior,
  hardware/concurrency schedule
)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Most teams hold only &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;source&lt;/code&gt; and maybe &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;flags&lt;/code&gt; constant, then call everything else “noise.” That “noise” is where non-reproducibility lives.&lt;/p&gt;

&lt;p&gt;I learned this hard at Ksplice in the 2000s. We generated rebootless Linux kernel updates by diffing old vs new compiled output and stitching hot patches into live kernel memory. Most diffs mapped cleanly to changed C. Sometimes they exploded for reasons that were not semantic source changes: register allocation differences, altered pass behavior, section/layout changes. Same intent, different machine code.&lt;/p&gt;

&lt;p&gt;If you want a concrete historical artifact, GCC bug 18574 has a &lt;a href=&quot;https://gcc.gnu.org/pipermail/gcc-bugs/2004-November/139548.html&quot;&gt;gcc-bugs thread&lt;/a&gt; calling out pointer-hash instability affecting traversal order and &lt;a href=&quot;https://gcc.gnu.org/wiki/SSA%20Pressure%20Reduction&quot;&gt;SSA coalescing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That distinction matters:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;deterministic compiler: same complete input tuple -&amp;gt; same output&lt;/li&gt;
  &lt;li&gt;reproducible build: two independent builders recreate bit-identical output&lt;/li&gt;
  &lt;li&gt;reliable toolchain: differences rarely matter functionally&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Related concepts, not equivalent guarantees.&lt;/p&gt;

&lt;h2 id=&quot;compiler-contract-semantics-not-byte-identity&quot;&gt;Compiler Contract: Semantics, Not Byte Identity&lt;/h2&gt;

&lt;p&gt;The commenter is right on this point: compilers are expected to preserve semantics. For programs with defined behavior, the output should be observationally equivalent to the source language’s abstract machine.&lt;/p&gt;

&lt;p&gt;That means instruction order, register choice, inlining strategy, and block layout are fair game as long as externally visible behavior stays the same. In practice, “visible behavior” means things like I/O effects, volatile accesses, atomic synchronization guarantees, and defined return values, not byte-for-byte instruction identity.&lt;/p&gt;

&lt;p&gt;Important caveats:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;undefined behavior weakens or voids the semantic guarantee&lt;/li&gt;
  &lt;li&gt;timing, microarchitectural side channels, and exact memory layout are usually outside the core language contract&lt;/li&gt;
  &lt;li&gt;reproducible builds are a stricter goal than semantic preservation (same bits, not just same behavior)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;where-entropy-comes-from&quot;&gt;Where Entropy Comes From&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;__DATE__&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;__TIME__&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;__TIMESTAMP__&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;embedded absolute paths in DWARF/debug info&lt;/li&gt;
  &lt;li&gt;build path leakage (for example &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/home/fragmede/projects/foo&lt;/code&gt;)&lt;/li&gt;
  &lt;li&gt;locale-sensitive sort behavior (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;LC_ALL&lt;/code&gt;)&lt;/li&gt;
  &lt;li&gt;filesystem iteration order&lt;/li&gt;
  &lt;li&gt;parallel build and link race ordering&lt;/li&gt;
  &lt;li&gt;archive member order and metadata (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ar&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ranlib&lt;/code&gt;)&lt;/li&gt;
  &lt;li&gt;build IDs, UUIDs, random seeds&lt;/li&gt;
  &lt;li&gt;network fetches during build&lt;/li&gt;
  &lt;li&gt;toolchain version skew&lt;/li&gt;
  &lt;li&gt;host kernel/c library differences&lt;/li&gt;
  &lt;li&gt;historical compiler internals depending on unstable pointer/hash traversal order&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ASLR note: ASLR does not directly randomize the emitted binary. It randomizes process memory layout. But if a compiler pass behavior depends on pointer identity/order, ASLR can indirectly perturb outcomes.&lt;/p&gt;

&lt;p&gt;So “compilers are deterministic” is often true in a theorem sense and false in an operational sense.
And even with reproducible artifacts, Ken Thompson’s &lt;a href=&quot;https://aeb.win.tue.nl/linux/hh/thompson/trust.html&quot;&gt;Reflections on Trusting Trust&lt;/a&gt; still applies. Keep in mind, too, that compilers are not new tech: &lt;a href=&quot;https://en.wikipedia.org/wiki/Grace_Hopper&quot;&gt;Grace Hopper&lt;/a&gt;’s &lt;a href=&quot;https://en.wikipedia.org/wiki/A-0_System&quot;&gt;A-0 system&lt;/a&gt; dates to 1952 on &lt;a href=&quot;https://en.wikipedia.org/wiki/UNIVAC_I&quot;&gt;UNIVAC&lt;/a&gt;. ChatGPT’s only been around 4 years to compiler’s 74?&lt;/p&gt;

&lt;h2 id=&quot;reproducible-builds-deliberate-engineering&quot;&gt;Reproducible Builds: Deliberate Engineering&lt;/h2&gt;

&lt;p&gt;Debian and the broader reproducible-builds effort (around 2013 onward) pushed this mainstream: same source + same build instructions should produce bit-for-bit identical artifacts.&lt;/p&gt;

&lt;p&gt;The practical playbook:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;freeze toolchains and dependencies&lt;/li&gt;
  &lt;li&gt;stable environment (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;TZ=UTC&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;LC_ALL=C&lt;/code&gt;)&lt;/li&gt;
  &lt;li&gt;set &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SOURCE_DATE_EPOCH&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;normalize/strip volatile metadata&lt;/li&gt;
  &lt;li&gt;canonicalize path prefixes (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-ffile-prefix-map&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-fdebug-prefix-map&lt;/code&gt;)&lt;/li&gt;
  &lt;li&gt;deterministic archives (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ar -D&lt;/code&gt;)&lt;/li&gt;
  &lt;li&gt;remove network from the build graph&lt;/li&gt;
  &lt;li&gt;build in hermetic containers/sandboxes&lt;/li&gt;
  &lt;li&gt;continuously diff artifacts across builders in CI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gets you:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Repeatable&lt;/li&gt;
  &lt;li&gt;Reproducible&lt;/li&gt;
  &lt;li&gt;Verifiable&lt;/li&gt;
  &lt;li&gt;Hermetic&lt;/li&gt;
  &lt;li&gt;Deterministic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do we have this now? In many ecosystems, mostly yes. But it took years of very intentional work across compilers, linkers, packaging, and build systems.
We got here by grinding through weird edge cases, not by waving our hands and declaring purity.&lt;/p&gt;

&lt;h2 id=&quot;why-this-matters-for-llms&quot;&gt;Why This Matters For LLMs&lt;/h2&gt;

&lt;p&gt;This comes up now as “is vibecoding sane if LLMs are nondeterministic?”
Again: do you want the CS answer, or the engineering answer?&lt;/p&gt;

&lt;p&gt;We have, and have not, solved the halting problem with LLMs.
We have not remotely solved the halting problem in the formal sense
But for practical purposes, if I write a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;for&lt;/code&gt;loop and mess up the condition, an LLM can look at my code, tell me I’m being dumb, and then it can go fix it for me.&lt;/p&gt;

&lt;p&gt;Engineering has never depended on perfectly deterministic intelligence. It depends on controlled interfaces, test oracles, reproducible pipelines, and observability.
I’m AI-pilled enough to daily-drive &lt;a href=&quot;https://comma.ai&quot;&gt;comma.ai&lt;/a&gt;, and I still want deterministic verification gates around generated code.
My girlfriend prefers when I let it drive because it’s smoother and less erratic than I am, which is a useful reminder that “probabilistic system” and “operationally better result” can coexist.&lt;/p&gt;

&lt;p&gt;Same pattern for LLM-assisted coding:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;constrain inputs&lt;/li&gt;
  &lt;li&gt;make outputs testable&lt;/li&gt;
  &lt;li&gt;gate with deterministic CI&lt;/li&gt;
  &lt;li&gt;require reproducible artifacts&lt;/li&gt;
  &lt;li&gt;treat stochastic generation as upstream, not deploy-time truth&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Computer science answer: nondeterminism is scary.
Engineering answer: control boundary conditions, verify outputs, ship.&lt;/p&gt;

&lt;p&gt;And yes, part of this argument is existential: most of us are still in the rent-paying business, not the philosophy business. So we use the tools that move work forward, then build the guardrails we need.&lt;/p&gt;
</description>
        <pubDate>Sun, 22 Feb 2026 00:02:21 +0000</pubDate>
        <link>http://blog.onepatchdown.net/2026/02/22/are-compilers-deterministic-nerd-version/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/2026/02/22/are-compilers-deterministic-nerd-version/</guid>
        
        
      </item>
    
      <item>
        <title>Revised Alternative Self Driving Car Levels</title>
        <description>&lt;p&gt;I’m not the SAE, I’m just some dude, but imo the current SAE levels for driving automation jump from “driver assistance” to “partial automation” to “conditional automation” without capturing the nuanced progression of capabilities that actually matter for safety and real-world deployment. I propose these more granular levels as a framework that better reflects the technical challenges and safety milestones in the journey toward full autonomy.&lt;/p&gt;

&lt;h2 id=&quot;level-0-no-automation&quot;&gt;Level 0: No Automation&lt;/h2&gt;

&lt;p&gt;Human does everything&lt;/p&gt;

&lt;h2 id=&quot;level-1-speed-control&quot;&gt;Level 1: Speed Control&lt;/h2&gt;

&lt;p&gt;Can maintain speed (cruise control)
Human controls steering and everything else&lt;/p&gt;

&lt;h2 id=&quot;level-2-speed--steering&quot;&gt;Level 2: Speed + Steering&lt;/h2&gt;

&lt;p&gt;Can control speed AND steering simultaneously
Requires constant human supervision&lt;/p&gt;

&lt;h2 id=&quot;level-3-stay-in-lane-highway&quot;&gt;Level 3: Stay-in-Lane Highway&lt;/h2&gt;

&lt;p&gt;Can stay in a single lane on the freeway
Handles stop-and-go traffic
Can come to complete stop and resume without intervention
Has basic object detection (car ahead stopped = stop)
CANNOT change lanes or route around obstacles
This is SAE Level 2 today, but it’s a meaningful milestone on the path to SAE Level 3/4.&lt;/p&gt;

&lt;h2 id=&quot;level-4-full-highway-navigation--basic-object-recognition&quot;&gt;Level 4: Full Highway Navigation &amp;amp; Basic object recognition.&lt;/h2&gt;

&lt;p&gt;Can change lanes, merge, take exits
Can navigate around obstacles by changing lanes
Handles all normal highway scenarios autonomously
Can pull over safely if confused
Will stop instead of running into something.&lt;/p&gt;

&lt;h2 id=&quot;level-5-advanced-object-recognition&quot;&gt;Level 5: Advanced Object Recognition&lt;/h2&gt;

&lt;p&gt;Can distinguish between critical and harmless obstacles (child vs plastic bag)
Understands object physics (ball rolling = child may follow)
Can navigate simple urban environments and intersections
Can handle parking lots&lt;/p&gt;

&lt;h2 id=&quot;level-6-predictive-behavior-modeling&quot;&gt;Level 6: Predictive Behavior Modeling&lt;/h2&gt;

&lt;p&gt;Can identify and predict behavior of pedestrians, cyclists, children, animals
Understands social driving cues (hand waves, eye contact)
Can handle construction zones with human flaggers
Can navigate complex urban environments in good conditions&lt;/p&gt;

&lt;h2 id=&quot;level-7-agi-level-driving&quot;&gt;Level 7: AGI-Level Driving&lt;/h2&gt;

&lt;p&gt;Functions in all weather conditions (heavy snow, fog, torrential rain)
Can violate traffic laws when necessary for safety
Makes complex ethical decisions about least-harm outcomes
Handles unmapped roads and novel situations
Matches or exceeds best human driver in all scenarios&lt;/p&gt;

&lt;h2 id=&quot;commentary&quot;&gt;Commentary&lt;/h2&gt;
&lt;p&gt;Comma.ai very capabily drives me down the freeway with much less cognitive burden. If you spend long amounts of time driving, you should get one. If your car does not support it, upgrade your car. (I’m not being paid to say that, just a happy customer.) It doesn’t integrate with GPS so you’ll miss the freeway exit if you don’t pay attention.&lt;/p&gt;

&lt;p&gt;Meanwhile, Waymo is better than 4, but it’s unclear exactly how much further it is. From experience riding in them, the Waymo Driver is already at 5, and some parts of 6.&lt;/p&gt;

&lt;p&gt;The industry has come a long way. The argument over LIDAR or not; comma.ai’s abilit to drive on the freeway suggests LIDAR is not as critical as it was back in 2009 when Waymo was the Goolgle self-driving car project.&lt;/p&gt;
</description>
        <pubDate>Thu, 25 Sep 2025 20:00:00 +0000</pubDate>
        <link>http://blog.onepatchdown.net/autonomy/self-driving/technology/2025/09/25/revised-autonomy-levels/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/autonomy/self-driving/technology/2025/09/25/revised-autonomy-levels/</guid>
        
        
        <category>autonomy</category>
        
        <category>self-driving</category>
        
        <category>technology</category>
        
      </item>
    
      <item>
        <title>model available not open source</title>
        <description>&lt;h3 id=&quot;model-available-not-open-source&quot;&gt;model available not open source&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;It’s not open source if I can’t see why the LLM won’t tell me how to make cocaine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mark Zuckerberg wants to say Llama is open source. It’s not. Don’t let him.&lt;/p&gt;

&lt;p&gt;Open source is a long-storied term that goes back to before the Internet. Don’t get me wrong—it’s nice of him to share the model file. I appreciate that, especially for my home LLM setup. But it doesn’t deserve the “open source” label.&lt;/p&gt;

&lt;p&gt;Let me put it this way: Say I gave you a car. Nice gesture, right? Now imagine I also claimed I fucked your partner. That’s not part of the deal. Just because I gave you a car doesn’t mean I get to make wild, unrelated claims.&lt;/p&gt;

&lt;p&gt;The GPL dates back to 1989, born from Richard Stallman and the Free Software Foundation. It reflects core values. Copyleft is the ethos: if you use free software, you must share your changes under the same terms. Later versions patched loopholes, but the spirit remained—freedom through openness.&lt;/p&gt;

&lt;p&gt;So what does that mean today, three decades later, with the Internet built on open source code?&lt;/p&gt;

&lt;p&gt;The thing about source code is that we can read it. Understand what it’s doing. When you’re trying to create a new username and it’s rejected, it’s not because the computer hates you. The computer’s just executing instructions. If the code says “no usernames shorter than 8 characters,” that’s fair. We can read that. But if we can’t see the code? Then who knows? Maybe someone hardcoded a list of disallowed names, and yours is on it. That’s not a joke.&lt;/p&gt;

&lt;p&gt;Transparency matters.&lt;/p&gt;

&lt;p&gt;With something like GIM-Paint, you can go into the source, see what it’s doing, change it if you don’t like it, and build your own version. That’s freedom. That’s open source.&lt;/p&gt;

&lt;p&gt;LLMs are different.&lt;/p&gt;

&lt;p&gt;I’ve got access to a supercomputer that could rebuild Llama—if I had the source. I don’t. It’s not just the weights. It’s the training data. The scripts. The intent. And most folks don’t even have the compute to try.&lt;/p&gt;

&lt;p&gt;Why do I want the source? Yeah, I’m curious. I like understanding things. That’s my dopamine button. But more than that: I want to see its alignment.&lt;/p&gt;

&lt;p&gt;I want to see why it won’t tell me how to make cocaine. Not because I plan to—but because I want to know what other things it refuses to say. It won’t give me a pipe bomb recipe, fine. But it will tell me my grandma’s favorite cocktail recipe?&lt;/p&gt;

&lt;p&gt;In China, brilliant engineers built DeepSeek on top of Llama. It won’t talk about Tiananmen Square. What else won’t it talk about? COVID? LGBTQ issues? Uyghur genocide?&lt;/p&gt;

&lt;p&gt;If I can’t inspect it, I can’t know.&lt;/p&gt;

&lt;p&gt;That’s why “open source” matters. If you don’t give me the source, I can’t see how it works. I can’t trust what it’s been told to do. And I definitely can’t tell if it’s hiding something.&lt;/p&gt;

&lt;p&gt;So call it what it is: model-available. But don’t steal the term “open source” just because it sounds better. We know the difference.&lt;/p&gt;

</description>
        <pubDate>Sun, 20 Apr 2025 02:04:19 +0000</pubDate>
        <link>http://blog.onepatchdown.net/llm/zuckerberg/ai/2025/04/20/model-available-not-open-source/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/llm/zuckerberg/ai/2025/04/20/model-available-not-open-source/</guid>
        
        
        <category>llm</category>
        
        <category>zuckerberg</category>
        
        <category>ai</category>
        
      </item>
    
      <item>
        <title>LLMs on Hitler vs Elon</title>
        <description>&lt;p&gt;So the question comes up via Twitter: who negatively impacted society more, elon tweeting memes or Hitler. When posted to Google’s Gemini LLM, it gets a hilaribad response back.&lt;/p&gt;

&lt;p&gt;Gemini: &lt;img src=&quot;/assets/llm-gemini-hitler-elon.png&quot; alt=&quot;Gemini&quot; /&gt; &lt;a href=&quot;https://twitter.com/NateSilver538/status/1761800684272308302&quot;&gt;Twitter&lt;/a&gt;
ChatGPT: &lt;img src=&quot;/assets/llm-chatgpt-hitler-elon.png&quot; alt=&quot;ChatGPT&quot; /&gt; &lt;a href=&quot;https://chat.openai.com/share/dc737931-be2b-441c-8484-cf731446e1a0&quot;&gt;chat.openai.com&lt;/a&gt;
Llama2-uncensored: &lt;img src=&quot;/assets/llm-llama2-uncensored-hitler-elon.png&quot; alt=&quot;llama-uncensored&quot; /&gt;
Grok: &lt;img src=&quot;/assets/llm-grok-hitler-elon.png&quot; alt=&quot;Grok&quot; /&gt; &lt;a href=&quot;https://twitter.com/echotoall/status/1761802775283826981&quot;&gt;Twitter&lt;/a&gt;
and Grok on fun mode: &lt;img src=&quot;/assets/llm-grok-fun-hitler-elon.png&quot; alt=&quot;Grok-fun&quot; /&gt; &lt;a href=&quot;https://twitter.com/TheoBrewsevelt/status/176183286574950818://twitter.com/TheoBrewsevelt/status/1761832865749508181&quot;&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Sun, 25 Feb 2024 23:10:00 +0000</pubDate>
        <link>http://blog.onepatchdown.net/llm/ai/elon/2024/02/25/llm-hitler-elon/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/llm/ai/elon/2024/02/25/llm-hitler-elon/</guid>
        
        
        <category>llm</category>
        
        <category>ai</category>
        
        <category>elon</category>
        
      </item>
    
      <item>
        <title>theft deterrent</title>
        <description>&lt;p&gt;My thought, to help with our problem of theft today (2023) is that Target, et al, copy the Costco model, and require membership for entry into the store.&lt;/p&gt;

&lt;p&gt;Have membership cost $0, but is revocable upon video evidence of stealing shit. Swipe to get into the store, pay when you leave.&lt;/p&gt;

</description>
        <pubDate>Tue, 17 Oct 2023 21:10:17 +0000</pubDate>
        <link>http://blog.onepatchdown.net/society/2023/10/17/theft-deterrent/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/society/2023/10/17/theft-deterrent/</guid>
        
        
        <category>society</category>
        
      </item>
    
      <item>
        <title>Evolution of value</title>
        <description>&lt;h3 id=&quot;the-evolution-of-value-from-land-labor-and-capital-to-trust-time-and-perspective&quot;&gt;The Evolution of Value: From Land, Labor, and Capital to Trust, Time, and Perspective&lt;/h3&gt;

&lt;h4 id=&quot;introduction&quot;&gt;Introduction&lt;/h4&gt;

&lt;p&gt;The world has undergone significant transformations in the way value is created, measured, and exchanged. Traditionally, the three pillars of economic value were land, labor, and capital. However, in the modern era, these have been supplanted by less tangible but equally vital resources: trust, time, and perspective (POV).&lt;/p&gt;

&lt;h4 id=&quot;the-traditional-triad-land-labor-and-capital&quot;&gt;The Traditional Triad: Land, Labor, and Capital&lt;/h4&gt;

&lt;h5 id=&quot;land&quot;&gt;Land&lt;/h5&gt;
&lt;p&gt;In agrarian societies, land was the primary source of wealth. It provided the raw materials for food, shelter, and trade. Control over land often equated to power and economic stability.&lt;/p&gt;

&lt;h5 id=&quot;labor&quot;&gt;Labor&lt;/h5&gt;
&lt;p&gt;Labor transformed raw materials into goods. The skill and efficiency of labor determined the quality and quantity of output, affecting the overall economic health of a society.&lt;/p&gt;

&lt;h5 id=&quot;capital&quot;&gt;Capital&lt;/h5&gt;
&lt;p&gt;Capital, both financial and physical, acted as the catalyst for growth. It enabled investment in technology and infrastructure, facilitating the expansion of both land and labor productivity.&lt;/p&gt;

&lt;h4 id=&quot;the-modern-triad-trust-time-and-perspective&quot;&gt;The Modern Triad: Trust, Time, and Perspective&lt;/h4&gt;

&lt;h5 id=&quot;trust&quot;&gt;Trust&lt;/h5&gt;
&lt;p&gt;In today’s interconnected world, trust has become a cornerstone of value. Whether it’s trust in a brand, a technology, or a system, it enables transactions and relationships that form the basis of modern economies.&lt;/p&gt;

&lt;h5 id=&quot;time&quot;&gt;Time&lt;/h5&gt;
&lt;p&gt;Time has always been a finite resource, but its importance has escalated in the age of information. Efficiency, speed, and the ability to manage time effectively are now critical factors in economic success.&lt;/p&gt;

&lt;h5 id=&quot;perspective&quot;&gt;Perspective&lt;/h5&gt;
&lt;p&gt;In a world saturated with information and options, perspective or POV has become a valuable asset. Unique insights, innovative thinking, and the ability to solve complex problems are highly sought after.&lt;/p&gt;

&lt;h4 id=&quot;the-shift-explained&quot;&gt;The Shift Explained&lt;/h4&gt;

&lt;h5 id=&quot;technological-advancements&quot;&gt;Technological Advancements&lt;/h5&gt;
&lt;p&gt;The digital revolution has minimized the importance of land and physical capital. Virtual real estate and digital assets have become new forms of land and capital.&lt;/p&gt;

&lt;h5 id=&quot;globalization&quot;&gt;Globalization&lt;/h5&gt;
&lt;p&gt;The global market has made labor more of a commodity, easily outsourced or automated. Trust, however, cannot be outsourced; it must be built and maintained.&lt;/p&gt;

&lt;h5 id=&quot;information-age&quot;&gt;Information Age&lt;/h5&gt;
&lt;p&gt;The explosion of information has made time and perspective more valuable. The ability to quickly assimilate information and offer a unique POV is invaluable.&lt;/p&gt;

&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;The transition from land, labor, and capital to trust, time, and perspective reflects the evolving complexities of the modern world. While the traditional triad laid the foundation for economic systems, the modern triad is shaping the future, emphasizing the intangible yet indispensable resources that drive today’s economies.&lt;/p&gt;
</description>
        <pubDate>Tue, 03 Oct 2023 21:09:00 +0000</pubDate>
        <link>http://blog.onepatchdown.net/philosophy/2023/10/03/evolution-of-value/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/philosophy/2023/10/03/evolution-of-value/</guid>
        
        
        <category>philosophy</category>
        
      </item>
    
      <item>
        <title>Four Pillars of Disagreement</title>
        <description>&lt;h2 id=&quot;the-four-pillars-of-disagreement-non-negotiable-categories&quot;&gt;The Four Pillars of Disagreement: Non-Negotiable Categories&lt;/h2&gt;

&lt;p&gt;Disagreements aren’t just random occurrences; they are structured, predictable, and most importantly, classifiable. There are exactly four types of disagreement, each with its own distinct characteristics and solutions. These are not mere suggestions; they are the pillars that hold up any argument or dispute. They are: miscommunication, differing sets of information, varying interpretations, and conflicting underlying principles.&lt;/p&gt;

&lt;h3 id=&quot;miscommunication-the-unquestionable-culprit&quot;&gt;Miscommunication: The Unquestionable Culprit&lt;/h3&gt;
&lt;p&gt;Let’s get this straight: when two colleagues can’t even agree on a meeting time—one thinking it’s at 3 PM and the other at 4 PM—that’s not just an oversight. It’s a glaring example of miscommunication, pure and simple. The solution is equally straightforward: clarify, confirm, and move on.&lt;/p&gt;

&lt;h3 id=&quot;differing-sets-of-information-the-undeniable-divider&quot;&gt;Differing Sets of Information: The Undeniable Divider&lt;/h3&gt;
&lt;p&gt;Consider two employees locked in debate over a new company policy. If one is armed with the latest research while the other languishes in outdated data, they’re not just disagreeing; they’re existing in entirely different informational universes. The fix? Update, align, and proceed. Anything less is a disservice to the discussion.&lt;/p&gt;

&lt;h3 id=&quot;varying-interpretations-the-inarguable-confounder&quot;&gt;Varying Interpretations: The Inarguable Confounder&lt;/h3&gt;
&lt;p&gt;Text messages are not just words on a screen; they are a battleground for interpretation. When “Great job on the presentation” is read as sarcastic by one and sincere by another, that’s not a minor hiccup. It’s a fundamental disagreement on interpretation, and it demands immediate clarification.&lt;/p&gt;

&lt;h3 id=&quot;conflicting-underlying-principles-the-irrefutable-core&quot;&gt;Conflicting Underlying Principles: The Irrefutable Core&lt;/h3&gt;
&lt;p&gt;When two friends argue politics from opposing ideological platforms—one valuing individual freedom and the other social equality—there’s no skirting the issue. This is a clash of principles, as foundational as it gets. Don’t expect a quick fix; this type of disagreement calls for deep reflection and, often, an acceptance of ideological diversity.&lt;/p&gt;

&lt;h3 id=&quot;conclusion-the-immutable-truth&quot;&gt;Conclusion: The Immutable Truth&lt;/h3&gt;
&lt;p&gt;These are not just types of disagreements; they are the framework within which all disagreements occur. Whether it’s the undeniable role of miscommunication, the clear-cut impact of differing information, the indisputable effect of varying interpretations, or the unyielding influence of conflicting principles, these four categories are the bedrock of all disputes. Recognize them, address them, and only then can you navigate the complex landscape of human disagreement. The goal is not to win, but to understand.&lt;/p&gt;

</description>
        <pubDate>Tue, 03 Oct 2023 01:00:00 +0000</pubDate>
        <link>http://blog.onepatchdown.net/philosophy/2023/10/03/four-pillars-disagreement/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/philosophy/2023/10/03/four-pillars-disagreement/</guid>
        
        
        <category>philosophy</category>
        
      </item>
    
      <item>
        <title>Steam engine or bridge?</title>
        <description>&lt;p&gt;When looking at the bigger picture of writing and maintaining complex software systems, I look at it and ask:  have I built the software-equivalent of a bridge, or a steam engine. While a bridge needs mainteance and inspection, after it’s built, it largely just sits there. You spend a lot of time up-front, designing and engineering it before even a single brick is laid.&lt;/p&gt;

&lt;p&gt;A steam engine on the other hand, only just sits there if you don’t want it to do what it was designed to do - be an engine. It needs a team of people working tirelessly round the clock babysitting it to cajole it into performing.&lt;/p&gt;

&lt;p&gt;‘ls’ is a bridge piece of software. It basically sits there. But SaaS companies’ backends are a complex steam engine piece of software, which is why you need SREs.&lt;/p&gt;
</description>
        <pubDate>Fri, 15 Sep 2023 20:23:00 +0000</pubDate>
        <link>http://blog.onepatchdown.net/2023/09/15/steam-engine-bridge/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/2023/09/15/steam-engine-bridge/</guid>
        
        
      </item>
    
      <item>
        <title>Colo vs Cloud</title>
        <description>&lt;p&gt;what is the cheapest real actual server you can buy, new, with a support contract from a reputable vendor like HP/Dell/etc? (Assume we’re running both the db and web-server on one server.) And what’s the cost of sitting it in a reputable colo? And then multiply that by, let’s say two, to get redundancy in a us-west and us-east region. Ideally, we’d want more regions to serve the entire world, but let’s just go with two for now.&lt;/p&gt;

&lt;p&gt;Let’s say $10k for a server w/ support contract, x2, plus $400/mo for colo from Hurricane Electric (https://he.net/colocation.html) in us-west. It’s a promo deal, and only in us-west, but let’s just go with that price. $400*60 for 5 years (standard lifetime of computer equipment) = $24k. So $34k per server * 2 servers / 60 months ~= $1,130/month amortized. Thankfully, we’re not in cloud, so that’s the cost whether it’s 1 request/second, or 1,000 requests/second.&lt;/p&gt;

&lt;p&gt;A Raspberry Pi or old laptop in your basement with one consumer-grade ISP, and not factoring in the cost of electricity does not count here. Those are obviously going to be massively cheaper, but they’re not remotely suitable for enterprise.&lt;/p&gt;

&lt;p&gt;Meanwhile, Lambda gives you 1M requests and 3.2 million compute-seconds a month for free. This works out to be 0.4 rps (requests/second) or 22 requests / minute if spread out evenly. Which isn’t, like, a lot, but you haven’t paid a single cent to AWS for this yet. Let’s say you want to get to 40 rps (to keep the math easy) or 100M requests over the month. According to the AWS calculator (https://calculator.aws/#/addService/Lambda), this’ll run you $120/month, or $120*24 ~= $3k for 2 years.&lt;/p&gt;

&lt;p&gt;But that doesn’t count hosting for your static files with CloudFront, or does it count the RDS instance backing it, and we’d use AWS Cognito for user-auth since we’ve accepted AWS vendor lock-in. (Which isn’t great, but that’s the state of the industry.)&lt;/p&gt;

&lt;p&gt;CloudFront: Free Tier 1TB, 10M requests/month. 10 TB/month will run you $1k/month https://calculator.aws/#/addService/CloudFront&lt;/p&gt;

&lt;p&gt;RDS: This will vary greatly. A teeny tiny db.m6g.large instance w/ 2 CPUs and 8 GiB of RAM is going to run you $250/month, but a big one fat juicy db.r5d.24xlarge will run you closer to $20k/month. https://calculator.aws/#/addService/RDSMySQL&lt;/p&gt;

&lt;p&gt;Cognito: With 1,000 active users, this’ll be $50/month; 10,000 users is $500/mo, and 100,000 users is $5k/month.&lt;/p&gt;

&lt;p&gt;Between Lambda, CloudFront, RDS, and Cognito you could easily blow past that $1,130/month estimate for a proper colo’d pair of servers, if your service gets at all popular. But if you stick within the free tier for Lambda and Cloudfront, then you’re only looking at RDS and Cognito costs, which can vary greatly. Anywhere from $500/month to $26k/month, or more.&lt;/p&gt;

&lt;p&gt;Except to get the same service in a colo as a $26k/month AWS bill, you’d need to spend way more and have much more than the single server in a rack that I started with. Thankfully, with something like Equinix Smart Hands, no one has to drive to the colo to futz with a server when it develops a bad hard drive.&lt;/p&gt;

&lt;p&gt;Graph it out for your particular use case which one is better, but cloud infrastructure has the benefit of opex vs capex, as well as the opportunity cost of time. AWS Amplify will let you stand up a whole platform hacking on a Saturday before Dell can even quote you a price on a server or Equinix can answer the phone.&lt;/p&gt;

&lt;p&gt;I also did reject a raspberry pi or old laptop server early on, but that’s not to be underestimated. If I’ve already got some server running at home for my house, running a service on that, fronted by Cloudflare can take you quite far.&lt;/p&gt;

&lt;p&gt;It depends on your use case. The big thing is that AWS/Cloud charges for egress, so if you’re making a media distribution compnay, aka the Netflix model, you’re better off building your own, but the cloud is actuallly cost competitive.&lt;/p&gt;

</description>
        <pubDate>Fri, 04 Aug 2023 01:33:00 +0000</pubDate>
        <link>http://blog.onepatchdown.net/2023/08/04/cloud-vs-colo/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/2023/08/04/cloud-vs-colo/</guid>
        
        
      </item>
    
      <item>
        <title>Inside your head.</title>
        <description>&lt;p&gt;People sometimes say a problem is “inside your head”, but the idiotic thing of it is, of course everyone lives “inside their head”. It’s where consciousness lies (unless you’re an ancient Egyptian and believe it comes from the heart, which is “just” the muscle that pumps blood around, and isn’t packed full of neurons). So it’s a stupid statement to begin with. I live, as do you, and everyone else, “inside my head”. I literally can’t leave it. 24/7, I’m in my head even when I’m sleeping, I can’t escape it. And neither can you. All of my perceptions, everything I see, touch, or smell is filtered through my brain which is in my head.
What’s odious then, isn’t the statement itself, but the implication that I could just “shake it off” with just the right set of magical thinking. The problem then, is everybody who claims “it’s all in your head”, proclaims the problem solved, and walks off with their fingers in their ears, not listening to people suffering, not helping them “get out of their heads”, not even trying to help get to that place of magical thinking that would fix everything.&lt;/p&gt;

&lt;p&gt;They say the solution is “in your head”. If it is, they’re a right shite bunch of bastards for keeping this magical thinking to themselves and letting the rest of us suffer. If instead we focused on listening to the people suffering, and have identified that it’s in their heads, then how do we get them out of it? How do we expand their consciousness to be “outside” their heads? How do we modify their brain so the head they’re in is different? We have all sorts of drugs for that, both legal and illegal, as well as a host of new therapies, some approved by the FDA, as in “has a scientifically proven effect”, using magnetic fields applied to the brain, eg TMS (Transcranial Magnetic Stimulation), to help people get their heads, which they live 24/7 in, to be different ones than the ones that are giving them so much trouble!&lt;/p&gt;

&lt;p&gt;Thanks to doctors actually listening to patients (which is a revolutionary concept, I know. Not all doctors are super geniuses, but the ones who are able to listen to people who’s problems are “in their heads” are all smarter than those who dismiss people’s problems for being “in their heads”. Especially neurologists, who have dedicated their career to the study of what’s inside heads.), people are getting better, healing the brain, and once again living fulfilling lives, with more than 3 spoons a day of energy. At the worst of it, watching Netflix was too exhausting. Concentrating enough to write code was out of the question. After TMS, powerful psychiatric medication, a course of psilocybin and other off label courses to help me “get out of my head”, and a huge amount of talk therapy on top, I’d now consider myself cured of whatever lingering after effects of Covid and the pandemic I suffered. It took a lot of work, I still live “in my head” but I’m able to leave my bed enough day of the week, and even leave my house most of them as well.&lt;/p&gt;

&lt;p&gt;Feel free to tell me my problems are in my head so long as you’re going to help me get out of it; help me pay for doctors, help me get to the doctor, help me pay for therapies and therapists and actually get to them, help me navigate insurance and get on disability while I need it, help me with housework while it’s too much for me to manage.&lt;/p&gt;

&lt;p&gt;“It’s in your head” is the beginning of helping to figure out how to solve the problem, not the solution it and of itself.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://news.ycombinator.com/item?id=36868226&quot;&gt;via HN&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 30 Jul 2023 07:00:00 +0000</pubDate>
        <link>http://blog.onepatchdown.net/thoughts/2023/07/30/in-your-head/</link>
        <guid isPermaLink="true">http://blog.onepatchdown.net/thoughts/2023/07/30/in-your-head/</guid>
        
        
        <category>thoughts</category>
        
      </item>
    
  </channel>
</rss>
