<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>TMFNK: The Mind for Navigating Knowledge</title><link>https://www.tmfnk.com/</link><description>Latest content from TMFNK</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 03 Jul 2026 10:19:07 +0000</lastBuildDate><atom:link href="https://www.tmfnk.com/feed.xml" rel="self" type="application/rss+xml"/><item><title>The Enterprise Context Layer: Synthesis Over Retrieval</title><link>https://www.tmfnk.com/use/tutorials/the-enterprise-context-layer/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/tutorials/the-enterprise-context-layer/</guid><description>Andy Chen's synthesis-over-retrieval thesis, plus the updated TMFNK ECL template: three build docs, ecl-runner workers, lean skills, and a full agent bootstrap spec.</description><content:encoded><![CDATA[

<h2>Article information
    </h2><ul>
<li><strong>Original article</strong>: <a href="https://andychen32.substack.com/p/the-enterprise-context-layer" target="_blank" rel="noopener">https://andychen32.substack.com/p/the-enterprise-context-layer</a></li>
<li><strong>TMFNK implementation</strong> (updated July 2026): <a href="https://github.com/TMFNK/Enterprise-Context-Layer" target="_blank" rel="noopener">TMFNK/Enterprise-Context-Layer</a>
<ul>
<li><code>README.md</code> — overview and how to run</li>
<li><code>readme-for-humans.md</code> — design rationale and deep background</li>
<li><code>readme-for-agents.md</code> — full build spec with runnable Python (~70 KB)</li>
<li><code>AGENTS.md</code> — harness grounding hook for Claude Code, Codex, Pi</li>
</ul>
</li>
</ul>
<hr>
<p>Andy Chen spent six months building a GTM question-answering bot at Abnormal Security before he realized the problem wasn&rsquo;t retrieval. Glean (arguably the best document-retrieval system in the world) still couldn&rsquo;t answer &ldquo;how long do we keep data after a customer churns?&rdquo; correctly. Because the right answer isn&rsquo;t in any document. It&rsquo;s: <em>don&rsquo;t answer this yourself, route it to the security team.</em></p>
<p>His solution: skip the ontology, the knowledge graph, and the semantic layer. Give twenty parallel LLM agents access to a Git repo and every primary source the company has, and tell them to write cited Markdown. Two days later: 6,000 commits, 1,020 files, 11 domains; 100% of every product, process, team, compliance framework, and competitive dynamic mapped, cross-referenced, and verified.</p>
<h3>One-sentence takeaway
    </h3><p>The Enterprise Context Layer solves synthesis over retrieval by encoding institutional reasoning frameworks as cited, conflict-aware Markdown in a Git repository, autonomously maintained by parallel agents that learn question routing.</p>
<hr>
<h2>Part 1: What Andy Chen built
    </h2><h3>The problem
    </h3><p>Chen&rsquo;s original task was deceptively simple: build a bot that helps GTM reps answer customer questions accurately. Questions like &ldquo;Will X feature be available next quarter?&rdquo;, &ldquo;How are you different from Y competitor?&rdquo;, &ldquo;What&rsquo;s your data retention policy?&rdquo;</p>
<p>Four things have to go right simultaneously for an AI to answer any of these correctly:</p>
<table>
  <thead>
      <tr>
          <th>Dimension</th>
          <th>Description</th>
          <th>What fails</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Product disambiguation</strong></td>
          <td>Matching customer language to internal product names</td>
          <td>Reps answer about the wrong product</td>
      </tr>
      <tr>
          <td><strong>Release semantics</strong></td>
          <td>Clarifying GA vs. early access, regional constraints (EU, FedRAMP)</td>
          <td>Customers receive incorrect access timelines</td>
      </tr>
      <tr>
          <td><strong>Roadmap process</strong></td>
          <td>NDA requirements, escalation paths, informal commitments</td>
          <td>Reps commit to unshipped features</td>
      </tr>
      <tr>
          <td><strong>Source conflicts</strong></td>
          <td>Outdated docs, contradicting PM announcements, informal vs. formal policy</td>
          <td>The confidently wrong answer</td>
      </tr>
  </tbody>
</table>
<p>Glean, which Chen praises explicitly as &ldquo;really really good&rdquo;, solves the first dimension through context graphs, trace learning, and per-customer embedding models. What it doesn&rsquo;t do is synthesize organizational context: the judgment calls, the institutional memory, the &ldquo;this question is actually dangerous and you shouldn&rsquo;t answer it&rdquo; knowledge that lives in Slack threads, Gong call recordings, and engineers&rsquo; heads.</p>
<p>The difference is noticeable. Ask &ldquo;when does customer data get deleted after churn?&rdquo; and a retrieval system returns the closest policy document. Chen&rsquo;s system returns: &ldquo;don&rsquo;t answer unless you absolutely know what you are doing; this is a high-risk question that should be escalated immediately to the legal team, and if you&rsquo;re not sure, route to the security team. Here&rsquo;s why, and here are three cases where reps got this wrong.&rdquo;</p>
<hr>
<h3>The implementation
    </h3><p>Chen&rsquo;s system is built on two ideas and one architectural trick.</p>
<h4>Synthesis over retrieval
    </h4><p>The ECL is not a search index. It&rsquo;s a Git repository of Markdown files that encode how the company actually works, the reasoning frameworks experts use, not just the raw facts they cite. Every file is a synthesis of primary sources: source code, Slack threads, Jira tickets, Gong transcripts, policy docs, ADRs. Every claim carries an inline citation. If an agent can&rsquo;t cite it, it doesn&rsquo;t write it.</p>
<h4>Document the conflict, not the winner
    </h4><p>When sources disagree, the ECL doesn&rsquo;t pick a side. It documents both, names the conflict explicitly, and records who should resolve it. A documented conflict is more useful than a silently chosen winner because it tells downstream agents and humans exactly why escalation is required.</p>
<h4>File-based distributed locking
    </h4><p>Chen adapted a task-locking pattern from Anthropic&rsquo;s C-Compiler project (Nicholas Carlini, Feb 2026), in which parallel Claude agents coordinate through lock files in a shared Git repo, with no external dependencies: no message broker, no coordinator service, no database. In Chen&rsquo;s adaptation, a maintenance agent continuously scans the ECL for gaps and staleness, writing task files into a <code>tasks/</code> directory. Worker agents claim tasks by writing a lock file and pushing to main; Git&rsquo;s push-rejection means only one agent gets a given task. The agent executes, writes or updates ECL files with citations, deletes the task and lock, commits, and pushes. Then it picks up the next task.</p>
<p>Twenty workers. Two days. 6,000 commits.</p>
<p><strong>Infrastructure:</strong></p>
<ul>
<li>~1,000 lines of Python for the harness</li>
<li>Modal sandbox for compute (plain bash access to the Git repo)</li>
<li>Glean search API + in-house retrieval for source access (Slack, Jira, Gong, etc.)</li>
<li>Git as the single source of truth; no message queue, no external database, no vector store</li>
</ul>
<p><strong>The prompt (Chen&rsquo;s actual words):</strong></p>
<blockquote>
  <p><em>You are an Enterprise Context Layer (ECL) Agent that builds and maintains internal mental models, the reasoning frameworks our experts use, not just raw facts. [&hellip;] The ECL is not built for readability. It&rsquo;s built for traceability and verifiability. Every claim, every statement, soft or hard, has to have an inline citation for the source(s) that it directly draws from.</em></p>
</blockquote>
<p>That&rsquo;s it. The rest emerges.</p>
<hr>
<h3>What emerged
    </h3><p>The artifacts Chen describes as &ldquo;otherwise impossible to produce manually&rdquo;:</p>
<h4>End-to-end customer journey
    </h4><p>From first sales contact through deployment, onboarding, renewal, and churn, all annotated with handoff points, common failure modes, and playbooks. Cross-referenced against real support cases and Gong calls.</p>
<h4>Detection model lifecycle
    </h4><p>A document bridging engineering, support, and customer success into one coherent mental model that previously lived only in a few engineers&rsquo; heads. Maps all causes of detection behavior change to customer-visible impact, with Databricks dashboard links and real incident case studies.</p>
<h4>Battle cards with closed evidence loops
    </h4><p>A Gong call where a competitive claim surfaced, correlated against actual product capabilities, linked to the Salesforce case showing how the deal ended, tied to field team Slack discussion on what messaging worked.</p>
<h4>Feature flag inventory
    </h4><p>Every flag across proto files, each cited back to specific line numbers in source code, with GovCloud overrides and deprecation status. No human has ever maintained something like this; it would be out of date the moment you finished writing it.</p>
<p>Then there&rsquo;s the routing behavior. When asked about data retention timelines, the system correctly declines to answer and routes to the security team. This behavior emerged from the citation architecture, not from a hard-coded rule.</p>
<hr>
<h3>Core insights
    </h3><p><strong>1. The taxonomy is the folder structure; the context graph is the backlinks.</strong></p>
<p>No ontology engine. No graph database. No semantic layer. Plain folders and plain Markdown. When an agent discovers that data retention questions connect to GTM and privacy and engineering, it writes a backlink in each file, and explains why. Over thousands of runs, backlinks accumulate into a navigable web of cross-domain understanding. The context graph builds itself.</p>
<p><strong>2. Every claim needs a citation; unverified claims are forbidden.</strong></p>
<p>The single most important writing rule. Unsourced assertions are more dangerous than gaps because they create false confidence. This rule is also what makes the system self-correcting: if a claim is wrong, the next agent can find the source, compare, and correct it. Remove citations and you have a confident, uncorrectable error machine.</p>
<p><strong>3. Document the conflict, not the winner.</strong></p>
<p>Two sources disagreeing is more useful information than a silently chosen winner. The ECL&rsquo;s job is to surface <em>why</em> something requires escalation, not to pretend the ambiguity doesn&rsquo;t exist.</p>
<p><strong>4. Architecture claims are durable; status claims are ephemeral.</strong></p>
<p>Chen&rsquo;s agents generalized this from experience: &ldquo;We use API-based integration&rdquo; is true for years. &ldquo;Feature X is coming soon&rdquo; can be unreliable within days. &ldquo;This PM announces features before they ship, so we don&rsquo;t commit to customers&rdquo; is tribal knowledge that retrieval will never surface. Different claims need different verification cadences.</p>
<p><strong>5. Three independent sources agreeing is the threshold for high confidence.</strong></p>
<p>But five Slack messages from the same channel are one data point, not five. Source diversity matters more than source volume.</p>
<p><strong>6. Meta-awareness emerges from seed files, not prompts.</strong></p>
<p>This is the subtlest insight in the essay. Chen created <code>meta/how-to-get-accurate-information.md</code> with a single line of instruction: <em>&ldquo;put in here synthesis of how to use tools to cite right sources, what sources or things tend to be out of date.&rdquo;</em> The agents filled out everything else completely from accumulated experience, over thousands of runs. No prompt changes. No architecture changes. Just a seed and a directory. The system learned which Confluence pages are perpetually stale, which Slack channels are noise vs. signal, which source pairs consistently conflict. Pre-filling that file with expert knowledge would have encoded the expert&rsquo;s biases. Leaving it empty let the agents discover the truth.</p>
<hr>
<h3>Broader connections
    </h3><h4>Context layers as practice, not product
    </h4><p>Chen&rsquo;s closing argument is that the ECL pattern is closer to DevOps than to Salesforce or Databricks. It&rsquo;s something most companies will build in-house rather than buy. The moat is not the tooling. It&rsquo;s the accumulated, verified, living body of institutional knowledge. That means the company that starts building its context layer today compounds its advantage over time in a way that can&rsquo;t be replicated by a vendor.</p>
<h4>Three layers of context for AI-native companies
    </h4><p>Chen sketches a hierarchy that deserves its own treatment: (1) enterprise context layer, company-wide knowledge; (2) team or org context layer, function-specific playbooks; (3) personal context layer, individual preferences and style. Each layer sits above retrieval and below task execution. Agents read from the layer appropriate to the task; the layers accumulate independently and at different rates.</p>
<h4>The ECL grounds computer-using agents
    </h4><p>The a16z thesis on computer-using agents (<a href="https://www.tmfnk.com/read/articles/the-rise-of-computer-use-and-agentic-coworkers/" >The Rise of Computer Use and Agentic Coworkers</a>) describes agents that navigate browsers, desktops, and legacy enterprise software. An agent that can navigate SAP is useful. One that knows <em>when</em> to navigate SAP, <em>which</em> queries require escalation, and <em>who</em> owns what is transformative. The ECL is the organizational memory those agents need to act correctly, not just efficiently.</p>
<h4>Foundation Capital&rsquo;s context graph thesis
    </h4><p>Jaya Gupta and Ashu Garg&rsquo;s December 2025 piece <a href="https://foundationcapital.com/ideas/context-graphs-ais-trillion-dollar-opportunity" target="_blank" rel="noopener">&quot;AI's Trillion-Dollar Opportunity: Context Graphs&quot;</a> argues that the next trillion-dollar platforms will be built not on systems of record (Salesforce, Workday, SAP) but on systems that capture decision traces: the <em>why</em> behind actions, not just the <em>what</em>. The ECL is a working implementation of this thesis at the level of a single company. The folder structure is the taxonomy. The backlinks are the decision trace. The <code>how-to-get-accurate-information.md</code> file is the accumulated judgment.</p>
<hr>
<h2>Part 2: The TMFNK implementation (updated 2026)
    </h2><p><em>What follows is my extrapolation from Chen&rsquo;s essay, now shipped as a full template repo. The conceptual core — synthesis over retrieval, empty seed file, folder-as-taxonomy, git push-rejection locking — is still his. The <a href="https://github.com/TMFNK/Enterprise-Context-Layer" target="_blank" rel="noopener">TMFNK/Enterprise-Context-Layer</a> repo grew significantly in 2026: three audience-specific docs, a complete agent build spec (<code>readme-for-agents.md</code>), runnable <code>ecl-runner.py</code> worker and maintenance loops, lean <code>SKILL.md</code> workflows inspired by <a href="https://github.com/tw93/Waza" target="_blank" rel="noopener">Waza</a>, RBAC tiers, and drift logging. One way to implement the pattern, not the only way.</em></p>
<h3>What&rsquo;s in the repo now
    </h3><table>
  <thead>
      <tr>
          <th>File</th>
          <th>Reader</th>
          <th>Purpose</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>README.md</code></td>
          <td>Humans</td>
          <td>Overview, architecture diagram, how to run workers and query</td>
      </tr>
      <tr>
          <td><code>readme-for-humans.md</code></td>
          <td>Engineers</td>
          <td>Why each design choice exists; read this to understand the system</td>
      </tr>
      <tr>
          <td><code>readme-for-agents.md</code></td>
          <td>LLM builders</td>
          <td>10-step Quick-Start Checklist, complete Python for task locking, workers, maintenance</td>
      </tr>
      <tr>
          <td><code>AGENTS.md</code></td>
          <td>Agent harnesses</td>
          <td>Auto-loaded grounding: points every session at <code>meta/</code> and <code>domains/skills/</code></td>
      </tr>
  </tbody>
</table>
<p><strong>Build path:</strong> clone the repo, open Claude Code / Codex / <a href="https://pi.dev/" target="_blank" rel="noopener">Pi</a>, and run:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Read readme-for-agents.md fully. Then follow the Quick-Start Checklist at the bottom of that document.
</span></span><span class="line"><span class="cl">Before you write any files, ask me the discovery questions in Step 1.</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Expect 30–90 minutes of human interview (domains, sources, authority hierarchy) before any worker runs. <strong>Stop for human review of <code>meta/system-prompt.md</code></strong> after Step 4. That file governs citations, routing rules, and what counts as a trusted source.</p>
<p><strong>Operate path</strong> (after bootstrap):</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># one worker to start</span>
</span></span><span class="line"><span class="cl">uv run ecl-runner.py worker --repo .
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># scale out (git is the only coordinator)</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> i in <span class="k">$(</span>seq <span class="m">1</span> 5<span class="k">)</span><span class="p">;</span> <span class="k">do</span>
</span></span><span class="line"><span class="cl">  <span class="nv">ECL_AGENT_ID</span><span class="o">=</span><span class="s2">&#34;agent-</span><span class="nv">$i</span><span class="s2">&#34;</span> uv run ecl-runner.py worker --repo . <span class="p">&amp;</span>
</span></span><span class="line"><span class="cl"><span class="k">done</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># maintenance every 6 hours (cron-friendly)</span>
</span></span><span class="line"><span class="cl">uv run ecl-runner.py maintenance --repo .</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Workers claim YAML tasks in <code>tasks/</code> by writing a <code>.LOCKED</code> sidecar and pushing; rejected push means another agent won the race. Maintenance scans for stale <code>last_verified</code> dates, missing <code>mapping-notes.md</code> entries, unresolved conflicts, and outdated skills, then drops new tasks for workers.</p>
<hr>
<h3>Frameworks and models
    </h3><h4>1. Source authority hierarchy
    </h4><p>Not all sources are equally trustworthy. The table below is what I distilled from Chen&rsquo;s essay and from reading the Anthropic C-Compiler post on how agents handle conflicting signals:</p>
<table>
  <thead>
      <tr>
          <th>Source</th>
          <th>Authority</th>
          <th>Best For</th>
          <th>Do NOT Use For</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Source code (main branch)</td>
          <td>PRIMARY</td>
          <td>How a feature actually behaves</td>
          <td>Future roadmap</td>
      </tr>
      <tr>
          <td>ADRs</td>
          <td>PRIMARY</td>
          <td>Why a design decision was made</td>
          <td>Current state if ADR is &gt;1 year old</td>
      </tr>
      <tr>
          <td>On-call runbooks</td>
          <td>HIGH</td>
          <td>Incident triage, known failure modes</td>
          <td>Normal operation flows</td>
      </tr>
      <tr>
          <td>Jira (last 6 months)</td>
          <td>HIGH</td>
          <td>Bug/feature status</td>
          <td>Historical context</td>
      </tr>
      <tr>
          <td>Support cases</td>
          <td>HIGH</td>
          <td>Customer experience ground truth</td>
          <td>Technical accuracy</td>
      </tr>
      <tr>
          <td>Gong transcripts</td>
          <td>MEDIUM</td>
          <td>What customers actually ask</td>
          <td>Precise feature specs</td>
      </tr>
      <tr>
          <td>Slack (&lt; 90 days)</td>
          <td>MEDIUM</td>
          <td>Emerging issues, informal decisions</td>
          <td>Formal commitments</td>
      </tr>
      <tr>
          <td>Confluence</td>
          <td>MEDIUM</td>
          <td>Intended design, onboarding</td>
          <td>Actual current behavior</td>
      </tr>
      <tr>
          <td>Slack (&gt; 90 days)</td>
          <td>LOW</td>
          <td>Historical context only</td>
          <td>Anything current</td>
      </tr>
  </tbody>
</table>
<p>Operational reality beats documented ideal. Source code shows what the system <em>does</em>. Confluence shows what someone <em>intended</em>. When they conflict, the code is right and the doc is stale.</p>
<h4>2. Staleness by claim type
    </h4><p>Different facts have different half-lives. The ECL must encode this to avoid treating a feature flag inventory the same as a founding architecture decision:</p>
<table>
  <thead>
      <tr>
          <th>Claim type</th>
          <th>Re-verify after</th>
          <th>Reasoning</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Pricing</td>
          <td>7 days</td>
          <td>Changes frequently; expensive to get wrong</td>
      </tr>
      <tr>
          <td>Product status (beta/GA/deprecated)</td>
          <td>7 days</td>
          <td>Changes with each sprint</td>
      </tr>
      <tr>
          <td>Competitive landscape</td>
          <td>14 days</td>
          <td>Competitors ship fast</td>
      </tr>
      <tr>
          <td>People / roles</td>
          <td>30 days</td>
          <td>Org changes happen monthly</td>
      </tr>
      <tr>
          <td>Process documentation</td>
          <td>30 days</td>
          <td>Process evolves but not daily</td>
      </tr>
      <tr>
          <td>Regulatory / compliance</td>
          <td>30 days</td>
          <td>Rare changes, high consequences</td>
      </tr>
      <tr>
          <td>Technical architecture</td>
          <td>90 days</td>
          <td>Evolves slowly</td>
      </tr>
      <tr>
          <td>Historical events</td>
          <td>Never</td>
          <td>The past doesn&rsquo;t change</td>
      </tr>
  </tbody>
</table>
<h4>3. The ECL architecture (2026 layout)
    </h4><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><pre><code>Data Sources (Slack, Jira, Confluence, GitHub, Gong, CRM, code)
    │
    ▼
Worker Agents (parallel, stateless)
  1. Pull ECL; claim task via .LOCKED &#43; git push
  2. Load matching domains/skills/{name}/SKILL.md if task type matches
  3. Read sources → synthesise with inline citations → document conflicts
  4. Append domains/{domain}/mapping-notes.md; commit; release task
    │
    ▼
Git Repo (single source of truth)
  AGENTS.md           ← harness auto-grounding
  meta/
    system-prompt.md
    how-to-get-accurate-information.md   ← starts empty; agents fill from experience
    domain-index.md                      ← domain → owner → primary sources
  tasks/              ← YAML queue &#43; .LOCKED files
  domains/            ← cited topic files &#43; mapping-notes per domain
    skills/           ← lean SKILL.md workflows (incident response, deals, etc.)
  sources/            ← read-only cited snapshots
  logs/               ← drift reports, agent error logs
    │
    ▼
Query (Claude Code, Pi, or rg &#43; any LLM)
  → cite ECL paths; surface conflicts; obey routing notes</code></pre></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Topic files carry YAML front matter (<code>last_verified</code>, <code>confidence</code>, <code>agent</code>). Conflicts stay visible after resolution. Sensitive questions get routing notes, not answers.</p>
<h4>4. Lean skills instead of a heavy skills framework
    </h4><p>The repo&rsquo;s third pattern is <strong>Lean Skills</strong> (<a href="https://github.com/tw93/Waza" target="_blank" rel="noopener">Waza</a> shape): one <code>SKILL.md</code> per workflow under <code>domains/skills/</code>, with trigger phrases in frontmatter. An agent loads the skill only when the task matches, follows it once, and does not auto-chain into a multi-skill pipeline.</p>
<p>Examples in the spec: incident response, closing a deal, customer data requests. Skills are versioned ECL content like anything else: citations, <code>last_verified</code>, re-verified when the process they describe drifts.</p>
<p>Superpowers-style discipline (brainstorm before synthesis, plan before harness changes) still fits as optional agent hygiene. The template itself does not require the Superpowers plugin; <code>domains/skills/</code> is the built-in mechanism.</p>
<h4>5. Recommended worker counts by phase
    </h4><table>
  <thead>
      <tr>
          <th>Phase</th>
          <th>Workers</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Initial seeding</td>
          <td>1</td>
          <td>Clean git history; easy to debug</td>
      </tr>
      <tr>
          <td>First population (3–4 domains)</td>
          <td>3–5</td>
          <td>Parallel without hammering sources</td>
      </tr>
      <tr>
          <td>Full population</td>
          <td>10–20</td>
          <td>Chen&rsquo;s original production scale</td>
      </tr>
      <tr>
          <td>Maintenance mode</td>
          <td>2–5</td>
          <td>Mostly verify/backlink tasks</td>
      </tr>
  </tbody>
</table>
<p>Tier models by task if you want to save tokens: frontier for <code>synthesise</code> and <code>conflict-review</code>, cheaper models for <code>verify</code> and <code>backlink</code> (Pi makes this a per-invocation setting).</p>
<hr>
<h3>Applications
    </h3><p><strong>What to do:</strong></p>
<ul>
<li>Start with one hard question, not all knowledge. Chen&rsquo;s original scope was a GTM bot answering five types of questions. The ECL grew from there. Pick the question that causes the most customer-facing failures and let the system expand from it. Don&rsquo;t try to map the whole company on day one.</li>
<li>Seed with an empty template, not expert content. The <code>how-to-get-accurate-information.md</code> file should start with one line of instruction. If you pre-fill it with what you know, you encode your biases and blind spots. Let agents build it bottom-up from accumulated experience.</li>
<li>Route, don&rsquo;t answer, for sensitive questions. Build routing rules as first-class artifacts. Which questions should never be answered by reps? Which require legal review? Which require escalation? These should be documented in the ECL before anything else.</li>
<li>Cross-reference across domains deliberately. When an agent discovers a connection between data retention policy, privacy team, and support case history, it should write that link explicitly in both files, with an explanation. Cross-domain understanding that stays implicit in one agent&rsquo;s context vanishes the next time a different agent reads the file.</li>
<li>Store workflows as lean <code>SKILL.md</code> files in <code>domains/skills/</code>, not only in Confluence. Process becomes citable, versioned, and subject to the same staleness checks as product docs.</li>
<li>Use <code>mapping-notes.md</code> per domain to audit what the fleet actually did. Without it you only see Markdown output, not which sources were read or which conflicts were found.</li>
</ul>
<p><strong>What to avoid:</strong></p>
<ul>
<li>Don&rsquo;t confuse the ECL with a better wiki. Wikis contain documents. The ECL contains reasoning frameworks. If your &ldquo;ECL&rdquo; is organized Confluence pages with better tagging, you&rsquo;ve built a taxonomy, not a context layer.</li>
<li>Don&rsquo;t skip the citation rule. This is the one rule that can&rsquo;t bend. Without inline citations, agents produce confident, untraceable errors that the next agent will propagate rather than correct. The self-correcting property depends entirely on traceability.</li>
<li>Don&rsquo;t pre-fill seed files with expert knowledge. The seed file&rsquo;s value is precisely that it&rsquo;s empty; agents fill it with what they actually discover, not what an expert assumes they&rsquo;ll discover.</li>
<li>Don&rsquo;t start too big. One domain, one worker, Claude Code as the query interface. Get that working first. The impressive-looking 1,020-file repo took two days because the pattern was right, not because someone planned 1,020 files.</li>
<li>Don&rsquo;t mistake the ECL for finished. Target state is continuous maintenance, not a complete wiki. The maintenance loop and worker loop run indefinitely.</li>
<li>Don&rsquo;t skip human review of <code>meta/system-prompt.md</code>. The bootstrap agent will guess at sensitive topics and routing rules; you sign off once, then workers inherit that contract.</li>
<li>Expect the query side to stay simple. Claude Code or Pi reading the repo is the v1 interface. <code>rg</code> plus an LLM is the lightweight alternative. Dedicated RAG is optional, not required.</li>
</ul>
<hr>
<h3>References
    </h3><p><strong>Primary sources:</strong></p>
<ul>
<li>Chen, A. (2026). &ldquo;The Enterprise Context Layer.&rdquo; Andy Chen&rsquo;s Substack. <a href="https://andychen32.substack.com/p/the-enterprise-context-layer" target="_blank" rel="noopener">https://andychen32.substack.com/p/the-enterprise-context-layer</a></li>
<li>Carlini, N. (2026). &ldquo;Building a C Compiler with a Team of Parallel Claudes.&rdquo; Anthropic Engineering Blog. <a href="https://www.anthropic.com/engineering/building-c-compiler" target="_blank" rel="noopener">https://www.anthropic.com/engineering/building-c-compiler</a> <em>(Source of the file-based distributed locking pattern.)</em></li>
</ul>
<p><strong>TMFNK implementation (GPL-3.0):</strong></p>
<ul>
<li><a href="https://github.com/TMFNK/Enterprise-Context-Layer" target="_blank" rel="noopener">TMFNK/Enterprise-Context-Layer</a>: Full template — <code>readme-for-agents.md</code> build spec, <code>ecl-runner.py</code>, task locking, staleness SLAs, RBAC tiers, lean skills, drift detection</li>
</ul>
<p><strong>Prior art (three patterns the repo synthesises):</strong></p>
<ul>
<li>Chen, A. (2026). <a href="https://andychen32.substack.com/p/the-enterprise-context-layer" target="_blank" rel="noopener">The Enterprise Context Layer</a> — synthesis over retrieval; folder taxonomy; backlinks as context graph</li>
<li>Carlini, N. (2026). <a href="https://www.anthropic.com/engineering/building-c-compiler" target="_blank" rel="noopener">Building a C Compiler with Parallel Claudes</a> — git push-rejection task locking</li>
<li>tw93. <a href="https://github.com/tw93/Waza" target="_blank" rel="noopener">Waza</a> — lean <code>SKILL.md</code> shape adapted as the ECL Lean Skills Pattern</li>
</ul>
<p><strong>Optional agent discipline:</strong></p>
<ul>
<li>Vincent, J. (obra). <a href="https://github.com/obra/superpowers" target="_blank" rel="noopener">Superpowers</a>: Optional workflow discipline for coding agents building or extending the harness; not required by the template</li>
</ul>
<p><strong>Related TMFNK content:</strong></p>
<ul>
<li><strong><a href="https://www.tmfnk.com/read/articles/the-rise-of-computer-use-and-agentic-coworkers/" >The Rise of Computer Use and Agentic Coworkers</a></strong> Computer-using agents need organizational memory; the ECL is one way to supply it.</li>
<li><strong><a href="https://www.tmfnk.com/use/tools/pipeshub/" >PipesHub: The Open Source Glean Alternative</a></strong> Retrieval stack for finding sources; the ECL synthesises on top of what retrieval surfaces.</li>
<li><strong><a href="https://www.tmfnk.com/use/tools/obsidian-agent-client/" >Obsidian Agent Client: Bring Claude Code Into Your Vault</a></strong> Same pattern of grounding agents in a Git-native knowledge base you control.</li>
</ul>
<p><strong>Complementary reads:</strong></p>
<ul>
<li>Gupta, J. &amp; Garg, A. (2025). <a href="https://foundationcapital.com/ideas/context-graphs-ais-trillion-dollar-opportunity" target="_blank" rel="noopener">AI&rsquo;s Trillion-Dollar Opportunity: Context Graphs</a> — decision traces as the asset; the ECL&rsquo;s backlinks are a plain-text version</li>
<li>Glean. <a href="https://www.glean.com" target="_blank" rel="noopener">https://www.glean.com</a> — Chen used Glean search as a source API; retrieval and synthesis complement each other</li>
</ul>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Think Twice: Harnessing the Power of Counterintuition by Michael J. Mauboussin</title><link>https://www.tmfnk.com/read/books/think-twice-by-michael-j-mauboussin/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/read/books/think-twice-by-michael-j-mauboussin/</guid><description>When to trust your gut, when to override it, and how to stop mistaking a good story for a good forecast.</description><content:encoded><![CDATA[

<h2>📚 Think Twice by Michael J. Mauboussin
    </h2><table>
  <thead>
      <tr>
          <th></th>
          <th></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Author</td>
          <td>Michael J. Mauboussin</td>
      </tr>
      <tr>
          <td>Year</td>
          <td>2009</td>
      </tr>
      <tr>
          <td>Pages</td>
          <td>224</td>
      </tr>
      <tr>
          <td>Read it if</td>
          <td>you make high-stakes calls under uncertainty and want a practical map of when intuition earns trust</td>
      </tr>
  </tbody>
</table>
<p>I picked this up after one too many confident forecasts fell apart within a year. Mauboussin&rsquo;s pitch is smaller than the subtitle suggests: learn which decisions your gut is actually trained for, and stop letting a polished story pass for evidence.</p>
<ol>
<li>
<p>Expert intuition only works in a narrow class of problems. Mauboussin sorts decisions by environment. Gut feeling earns its keep when the setting is stable, feedback is fast, and patterns repeat: chess, firefighting, surgery. Investing, corporate strategy, hiring executives? Different class. That&rsquo;s where &ldquo;think twice&rdquo; is the whole job.</p>
</li>
<li>
<p>The inside view sounds smart and skews optimistic. When you estimate a deadline or judge whether a bet will pay off, you build a narrative from this case&rsquo;s unique details. That&rsquo;s the inside view. The outside view asks a blunt question: how did similar situations actually turn out? In Mauboussin&rsquo;s examples, student project timelines shrink sharply once you anchor to past completion rates instead of the team&rsquo;s plan.</p>
</li>
<li>
<p>Preparation is what looks like genius in the ring. Mauboussin opens with Muhammad Ali. Spectators saw speed. What they missed was repetition: combinations drilled thousands of times before the bell. Mental models aren&rsquo;t accessories for clever people. They&rsquo;re the training that lets you respond correctly when there&rsquo;s no time to reason from scratch.</p>
</li>
<li>
<p>Coherent stories are not proof of cause and effect. One recurring trap is mistaking narrative fit for explanation. Mauboussin walks through cases where the obvious story (this choice caused that outcome) collapses on closer inspection. A story that hangs together can still be wrong.</p>
</li>
<li>
<p>Individual rationality does not guarantee group sense. Micro-level logic can produce macro-level nonsense: herding, bubbles, organizational drift. You can&rsquo;t infer crowd behavior from one person&rsquo;s motives, and you can&rsquo;t fix group failure by telling everyone to try harder individually.</p>
</li>
<li>
<p>Bad decisions often start with too few options on the table. Narrow framing is the quiet killer. Mauboussin&rsquo;s fix isn&rsquo;t louder brainstorming. Generate real alternatives before you commit to the first plan that sounds reasonable. A premortem helps: assume the decision failed, then work backward to explain why.</p>
</li>
<li>
<p>Experts help until you ask them the wrong question. Domain experts with tight feedback loops are valuable. Ask the same person to forecast outside that loop (long-range macro, novel technology, one-off strategy) and confidence often outruns accuracy. Mauboussin isn&rsquo;t anti-expert. He&rsquo;s strict about matching the tool to the task.</p>
</li>
<li>
<p>Good group calls need independence more than harmony. For a crowd to add information, people need to think differently and not coordinate before they commit. Meetings that socialize opinions before anyone writes a number down throw away the main benefit of having multiple minds in the room.</p>
</li>
</ol>
<p><strong>Verdict:</strong> Short book with a dense framework. The case studies show their age, but the decision-class map still holds. If you&rsquo;ve read Kahneman or Gawande, you&rsquo;ll recognize much of the furniture. Read this for Mauboussin&rsquo;s synthesis: when gut is earned, when to reach for the outside view, and when a checklist beats a confident room. Skim the anecdotes if you&rsquo;re busy; don&rsquo;t skip the early chapters on intuition and the prepared mind.</p>
<h2>Related TMFNK Content
    </h2><ul>
<li><strong><a href="https://www.tmfnk.com/read/books/thinking-fast-and-slow-by-daniel-kahneman/" >Thinking, Fast And Slow By Daniel Kahneman</a></strong> Mauboussin leans on Kahneman&rsquo;s System 1/System 2 split throughout. Read Kahneman first for the underlying psychology, then Think Twice for the applied decision-class map.</li>
<li><strong><a href="https://www.tmfnk.com/read/books/the-checklist-manifesto-by-atul-gawande/" >The Checklist Manifesto: How to Get Things Right by Atul Gawande</a></strong> Gawande&rsquo;s answer to bad decisions is a checklist. Mauboussin agrees, but only for the narrow class of problems where expert intuition already works. Read both to see where that advice actually applies.</li>
<li><strong><a href="https://www.tmfnk.com/read/books/the-black-swan-by-nassim-nicholas-taleb/" >The Black Swan: The Impact of the Highly Improbable by Nassim Nicholas Taleb</a></strong> Taleb goes further than Mauboussin, arguing rare events make most forecasting theater. Think Twice is the more practical, day-to-day companion to Taleb&rsquo;s bigger claim.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>The Proletariat of Judgment: Cognitive Stratification in the AI Era</title><link>https://www.tmfnk.com/read/articles/proletariat-of-judgment/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/read/articles/proletariat-of-judgment/</guid><description>AI multiplies leverage while outsourcing the judgment needed to wield it. The first casualties may not be factory workers but knowledge workers who trade thinking for convenience.</description><content:encoded><![CDATA[
<p>I do not understand much, but I do understand is this: the tool offering the greatest leverage is now eroding the one skill you need to aim leverage at anything worth hitting.</p>
<p>The first casualties of the AI era may not be assembly-line workers. They are the knowledge workers who quietly outsourced thinking and let algorithms format their minds. Unemployment makes the news. Cognitive proletarianization does not.</p>
<p>Naval Ravikant&rsquo;s line still frames the stakes: in a world of unlimited leverage, judgment is the most important skill. Code, content, capital, and now AI stack into multipliers so cheap that one person can touch millions. Judgment is the steering wheel. Remove it and you just drive faster into a wall.</p>
<ol>
<li>
<p>The tragedy is structural. AI is built to do what judgment normally does: weigh tradeoffs, organize language, pick the &ldquo;reasonable&rdquo; answer. An investor once described lunch with a polished Stanford grad who paused mid-sentence, hunting for basic words. The student admitted he relied on ChatGPT to organize his thoughts. Without it, his mind felt slow. His brain had become a buffer waiting for the API.</p>
</li>
<li>
<p>MIT Media Lab&rsquo;s <a href="https://www.media.mit.edu/publications/your-brain-on-chatgpt/" target="_blank" rel="noopener">Your Brain on ChatGPT</a> study put essay writers in EEG headsets across four months. ChatGPT users showed the weakest brain connectivity. Brain-only writers showed the strongest, especially in alpha and theta bands tied to memory and creative work. Essays converged within groups on word choice and topic. On open questions about happiness or philanthropy, LLM-assisted writers landed on the same safe answers. Users could barely quote what they had &ldquo;written&rdquo; minutes earlier. Nataliya Kosmyna calls it cognitive debt.</p>
</li>
<li>
<p>Homogenization is not only neural. A <a href="https://news.cornell.edu/stories/2025/04/ai-suggestions-make-writing-more-generic-western" target="_blank" rel="noopener">Cornell study</a> of U.S. and Indian writers found AI autocomplete pushed everyone toward Western defaults: pizza, Christmas, Shaquille O&rsquo;Neal when you meant Shah Rukh Khan. Specific words like cardamom or lemon pickle smoothed into &ldquo;rich, aromatic flavor.&rdquo; The model optimizes for the average token. Use it widely and the average becomes the culture.</p>
</li>
<li>
<p>We were already converging before LLMs: gray cars, Edison-bulb cafes, the same face on every feed. AI imports that sameness into sentences. Santa Clara researchers compared ChatGPT to Brian Eno&rsquo;s Oblique Strategies cards. ChatGPT users produced more ideas but felt less responsible for them, and ideas clustered tighter across people. One participant said ChatGPT let them &ldquo;turn my brain off.&rdquo;</p>
</li>
<li>
<p>An LLM is a protocol for thought. You do not have to use it, but if you want speed, you accept its defaults: efficiency, fluency, the statistically popular answer. Each acceptance nudges you toward the same &ldquo;optimal&rdquo; phrasing. Margaret Thatcher&rsquo;s &ldquo;there is no alternative&rdquo; was politics. In prompt space it starts to feel like math.</p>
</li>
<li>
<p>Naval&rsquo;s formula is judgment times leverage. He asks how much a $100 billion company should pay to move a CEO hire from 75% to 85% decision accuracy. Tens of millions a year, because tiny judgment edges compound across huge leverage. That edge comes from effort, risk, and scar tissue. AI sells the helicopter ride to the scenic overlook. You get the view. You miss the climb that built your sense of direction.</p>
</li>
<li>
<p>There is a feedback loop underneath. Model collapse research shows what happens when models train on AI-generated text: outputs get flatter, weirder, more same. We are already pumping homogenized emails, reports, and posts into the pool the next generation learns from. An ouroboros of average.</p>
</li>
<li>
<p>You might say I am romanticizing friction. Fair. The same MIT study found search-engine users sat between brain-only and ChatGPT on engagement. Tools are not equally corrosive. <a href="https://firstthings.com/demons-and-chatgpt/" target="_blank" rel="noopener">Thomas Harmon</a>, writing on AI and attention, compares the posture to a high-tech Ouija board: the danger is misused attention, not the tool itself. Oracle mode hands you an answer. Sparring-partner mode hands you a provocation you still have to wrestle with.</p>
</li>
</ol>
<p><strong>The takeaway:</strong> Treat default ChatGPT use like a credit card for judgment. Fine in a pinch, but ruinous as a lifestyle. Keep tasks where you sweat. Read the book, not the summary. Argue before you polish. Use AI for absurd prompts that break your frame, not finished paragraphs that replace it. Keep one hobby, one opinion, one loyalty that makes no optimization sense. That is how you stay someone the machine cannot fully predict.</p>
<h2>Related TMFNK Content
    </h2><ul>
<li><strong><a href="https://www.tmfnk.com/read/books/the-almanack-of-naval-ravikant-by-eric-jorgenson/" >The Almanack of Naval Ravikant by Eric Jorgenson</a></strong> Where the leverage-and-judgment frame comes from, and why specific knowledge still compounds.</li>
<li><strong><a href="https://www.tmfnk.com/read/articles/average-is-all-you-need/" >The Magic of Average: Why LLMs Make Simple the New Powerful</a></strong> The optimistic flip side: average output is now instant. This piece is about what you pay for that magic.</li>
<li><strong><a href="https://www.tmfnk.com/read/articles/thinkism-and-the-teachers-dilemma/" >Thinkism and the Teacher&rsquo;s Dilemma</a></strong> Understanding follows doing, not the other way around. AI tempts you to skip the doing entirely.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Sergey Brin: Where Frontier AI Is Headed</title><link>https://www.tmfnk.com/see/videos/sergey-brin-where-frontier-ai-is-headed/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/see/videos/sergey-brin-where-frontier-ai-is-headed/</guid><description>Sergey Brin sat down for a rare unscripted Q&amp;A on frontier AI, and admitted even Google doesn't fully understand what Gemini can do.</description><content:encoded><![CDATA[

<h2>🎥 Sergey Brin: Where Frontier AI Is Headed
    </h2><p>AGI House x Google DeepMind. Duration: 28 min</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/gsv5o8ANdDo?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<h2>Timestamps
    </h2><ul>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo" target="_blank" rel="noopener">0:00</a> Intro &amp; the comeback</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=172s" target="_blank" rel="noopener">2:52</a> Convergence: specialized models becoming general</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=224s" target="_blank" rel="noopener">3:44</a> Transfer: how coding training improves math reasoning</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=364s" target="_blank" rel="noopener">6:04</a> Defining superintelligence &amp; P vs NP</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=501s" target="_blank" rel="noopener">8:21</a> Frontier AI in legacy industries (auto, aerospace)</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=684s" target="_blank" rel="noopener">11:24</a> Chain-of-thought: the simple prompt that worked</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=799s" target="_blank" rel="noopener">13:19</a> Knowledge graphs vs. neural nets</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=932s" target="_blank" rel="noopener">15:32</a> What stays human: chess, Go &amp; moving goalposts</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=1148s" target="_blank" rel="noopener">19:08</a> Are transformers enough for AGI?</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=1225s" target="_blank" rel="noopener">20:25</a> Using AI to build AI: self-improvement at Gemini</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=1346s" target="_blank" rel="noopener">22:26</a> Sergey&rsquo;s role vs. Demis &amp; Koray</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=1432s" target="_blank" rel="noopener">23:52</a> World models &amp; the path to AGI</li>
<li><a href="https://www.youtube.com/watch?v=gsv5o8ANdDo&amp;t=1565s" target="_blank" rel="noopener">26:05</a> Where Gemini stands against the competition</li>
</ul>
<p>Sergey Brin rarely speaks publicly. He sat down for an unscripted Q&amp;A on frontier AI, and the thing that stands out isn&rsquo;t the answers. It&rsquo;s how many times he admits nobody, including him, fully understands what they&rsquo;ve built.</p>
<ol>
<li>Specialized AI models are converging into one. Google used to need separate models for different scientific problems. Now Gemini is becoming state-of-the-art at math and science simultaneously. Brin says he wouldn&rsquo;t have predicted this at the outset, and watching it happen has been incredible.</li>
<li>Training a model on one skill mysteriously improves unrelated skills. This is transfer. Train it on coding and math reasoning gets better, and vice versa. Teach it to process images and it gets sharper at geometric word problems. Nobody engineered that; it just bleeds across.</li>
<li>Brin doesn&rsquo;t know how to prompt his own company&rsquo;s model. He says he&rsquo;s genuinely unsure what level to operate at, whether that&rsquo;s debugging a specific function, asking it to write a better training algorithm, or just saying &ldquo;what should I do today.&rdquo; Even inside Google, they don&rsquo;t know exactly where Gemini&rsquo;s edges are.</li>
<li>One of AI&rsquo;s biggest leaps came from the dumbest sounding trick. Chain-of-thought prompting is just telling the model to think step by step before answering. Brin says it seemed like the dumbest idea imaginable, with no obvious reason it should work. It worked anyway, and capability jumped.</li>
<li>Brin wouldn&rsquo;t modify his own biology for today&rsquo;s models. Asked how humans keep pace with accelerating AI bandwidth, he acknowledged neural links and brain-computer interfaces are being pursued. His answer: wait for the tech to mature. Current models don&rsquo;t justify the risk.</li>
<li>Superintelligence doesn&rsquo;t mean solving the impossible. An audience member argued true superintelligence would crack NP-complete problems like the traveling salesman. Brin pushed back. Most computer scientists believe P isn&rsquo;t equal to NP, so no algorithm reliably solves those optimally, no matter how smart it is. Superintelligence just means smarter than humans, not omnipotent.</li>
<li>Machines mastering a skill has never stopped humans from pursuing it. Deep Blue beat Kasparov in the 1990s and people kept playing chess. After AlphaGo, human Go players who lost to it became dramatically better. Brin&rsquo;s read is that AI doesn&rsquo;t retire human ambition in a domain. It usually raises the ceiling and pulls people up with it.</li>
<li>Brin thinks something close to transformers gets us to AGI. Asked directly if the architecture is sufficient, his guess is yes, largely because it&rsquo;s proven weirdly flexible, working for image and video far past its original text purpose. He&rsquo;s careful to note the architecture has changed a lot since the original paper.</li>
<li>AGI means two different things, and one requires a body. Brin personally defines AGI as AI that can improve itself. He concedes others define it as AI that can do anything a person can, and thinks they&rsquo;re probably right. Doing everything a person can do means understanding the physical world, which is why world models and robotics matter now.</li>
<li>Inside Google, they&rsquo;re already using the AI to build the AI. Brin says a growing share of the team&rsquo;s energy goes into having models monitor training runs and generate their own training data. He calls it the self-improvement game, and says it&rsquo;s most of what he personally works on now.</li>
<li>Brin is candid about where Google trails. He admits Google was slow to focus on coding. Gemini 3.0 and 3.1 topped the board six months ago, he says, but competitors have since pulled ahead specifically on deep coding and overnight tasks, while he still pitches Gemini Flash as faster for rapid interactive work. In hindsight, he says, they should have prioritized code sooner.</li>
<li>He sees his own role as a rabble-rouser, not a manager. Delivering Gemini is Demis and Koray&rsquo;s job, not his. He describes his own work as poking the team, asking &ldquo;are you really doing that,&rdquo; and surfacing priorities they might be missing. He admits this is sometimes disruptive.</li>
<li>His confidence comes from ignoring the monthly scoreboard. If he judged Google&rsquo;s position by whichever competitor shipped last, he&rsquo;d lose confidence fast. He watches the longer arc instead: leads shift constantly between labs, and he feels good about where Gemini sits despite the noise.</li>
</ol>
<h2>Related TMFNK Content
    </h2><ul>
<li><strong><a href="https://www.tmfnk.com/see/videos/how-i-use-llms-andrej-karpathy/" >How I Use LLMs: Andrej Karpathy&rsquo;s Practical Guide</a></strong> Karpathy shows what it&rsquo;s like to use these models from the outside, as a power user. Brin shows what it&rsquo;s like from the inside, confused about his own product&rsquo;s edges. Watch both for the full picture.</li>
<li><strong><a href="https://www.tmfnk.com/see/videos/the-man-who-triggered-the-ai-explosion/" >The man who triggered the AI explosion: The Alex Krizhevsky Story</a></strong> Brin&rsquo;s bet that something close to transformers gets us to AGI only makes sense once you&rsquo;ve seen where the deep learning wave actually started. This is that origin story.</li>
<li><strong><a href="https://www.tmfnk.com/see/videos/winning-the-ai-race/" >Winning the AI Race</a></strong> This video covers the US government&rsquo;s strategy for AI dominance from the top down. Brin&rsquo;s talk is the view from inside one of the labs that strategy depends on, and he&rsquo;s far less certain than the summit rhetoric suggests.</li>
<li><strong><a href="https://www.tmfnk.com/read/books/ai-superpowers/" >Ai Superpowers</a></strong> Kai-Fu Lee&rsquo;s book frames AI progress as a US-China race decided by data and execution. Brin&rsquo;s admission that even Google doesn&rsquo;t know Gemini&rsquo;s limits complicates any narrative this clean.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Modern Slavery Wears a Tax Number</title><link>https://www.tmfnk.com/read/articles/modern-slavery-tax-number/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/read/articles/modern-slavery-tax-number/</guid><description>Compliance replaced iron chains. You don't flee the system—you register for it, or you can't work, bank, or buy food.</description><content:encoded><![CDATA[
<p>I keep coming back to the same image: no overseer, no collar, just forms. A tax number. A social security number. An electronic patient file. A vaccination record. A CO₂ passport waiting in the queue. The old slavery ran on force you could see. This one runs on paperwork you can&rsquo;t skip.</p>
<ol>
<li>
<p>Modern bondage is administrative. You are not dragged to a plantation. You are told you need an identifier to get paid, open an account, rent an apartment, or see a doctor. Opting out is not rebellion. It is unemployment, homelessness, and informal life at the margins.</p>
</li>
<li>
<p>The slave does not run. He registers. That is the part that messes with people. Compliance feels voluntary because the alternative is worse. No ID, no payroll. No payroll, no mortgage. No mortgage, no settled life. The chain is the checklist.</p>
</li>
<li>
<p>The state stopped saying &ldquo;you belong to me.&rdquo; It says &ldquo;you are a resource.&rdquo; That wording matters. Resources get extracted, metered, and optimized. People with rights get negotiated with. We moved from ownership language to asset language and called it progress.</p>
</li>
<li>
<p>The tribute is not symbolic. In much of Europe, income tax plus social contributions already take roughly half of labor cost before you spend a euro (<a href="https://www.oecd.org/en/data/indicators/tax-wedge.html" target="_blank" rel="noopener">OECD tax wedge data</a> puts several countries in the high forties to low fifties for average earners). Add VAT on what you buy, and something like 60% of your economic output cycling through the Leviathan is not hysteria. It is arithmetic.</p>
</li>
<li>
<p>What you get back is sold as civilization. Roads, schools, healthcare, pensions. Sometimes that trade is worth it. Often the same service would be cheaper, faster, or more accountable on a market you could actually choose. The fanfare around &ldquo;public services&rdquo; is part of the price: you are meant to feel grateful for the fraction returned after the skim.</p>
</li>
<li>
<p>The record chain keeps growing. Each new credential is marketed as safety or sustainability. Functionally it is another switch. Flip it off and you lose access to work, travel, or commerce the same way you would without a tax ID.</p>
</li>
<li>
<p>Resistance has a floor. You can complain, vote, litigate, move jurisdictions. If you stop paying or stop complying, eventually people with guns show up. Every soft system has a hard endpoint. The paperwork is polite right up until it isn&rsquo;t.</p>
</li>
<li>
<p>You might think this is ungrateful. Fair pushback. Rule of law and public goods are real. But gratitude does not require pretending the markup is zero. You can want courts and still notice when the bundle costs more than the parts.</p>
</li>
</ol>
<p><strong>The takeaway:</strong> Treat every identifier you &ldquo;need&rdquo; as a leash you accepted for convenience. Know what you traded. Shrink the number of gates you depend on where you can. And do not confuse registration with consent just because the form has a submit button.</p>
<h2>Related TMFNK Content
    </h2><ul>
<li><strong><a href="https://www.tmfnk.com/read/articles/thoughts-and-sayings/" >Thoughts and Sayings</a></strong> Hayek&rsquo;s line on money as the poor man&rsquo;s tool of freedom, and what happens when access runs through the state first.</li>
<li><strong><a href="https://www.tmfnk.com/read/books/capitalism-and-freedom-by-milton-friedman/" >Capitalism and Freedom by Milton Friedman</a></strong> The classic case for keeping economic power out of political hands.</li>
<li><strong><a href="https://www.tmfnk.com/read/books/the-road-to-serfdom-by-friedrich-a-von-hayek/" >The Road to Serfdom by Friedrich Hayek</a></strong> How incremental control dressed in good intentions still ends in compulsion.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Immich: Self-Hosted Google Photos with Backup, Search, and Faces</title><link>https://www.tmfnk.com/use/tools/immich/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/tools/immich/</guid><description>Immich backs up photos and videos from your phone to your own server, with facial recognition, CLIP search, shared albums, and apps that feel close to Google Photos without the subscription.</description><content:encoded><![CDATA[

<h2>🛠️ Immich
    </h2><table>
  <thead>
      <tr>
          <th></th>
          <th></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>What it is</td>
          <td>Self-hosted photo and video library with mobile backup, search, and sharing</td>
      </tr>
      <tr>
          <td>Platform</td>
          <td>Docker server (Linux/macOS/Windows); iOS and Android apps</td>
      </tr>
      <tr>
          <td>Price</td>
          <td>Free, open source (AGPL-3.0)</td>
      </tr>
      <tr>
          <td>Link</td>
          <td><a href="https://github.com/immich-app/immich" target="_blank" rel="noopener">github.com/immich-app/immich</a></td>
      </tr>
  </tbody>
</table>
<p>Google Photos works until you think about what you traded: your entire visual history on someone else&rsquo;s disk, priced by storage tier, searchable by their models. <a href="https://github.com/immich-app/immich" target="_blank" rel="noopener">Immich</a> is the project that actually gets close to replacing it. Not a static gallery. A full backup stack with background upload from your phone, deduplication, faces, CLIP search, partner sharing, and a web UI that does not feel like a weekend hack. Over 100k GitHub stars for a reason.</p>
<ol>
<li>
<p>The killer feature is phone backup that behaves like Google Photos. Install the mobile app, point it at your server URL, pick albums, enable backup. New shots upload in the background. Duplicates get skipped. Live Photos and RAW files are supported. That alone separates Immich from &ldquo;I rsynced a folder once.&rdquo;</p>
</li>
<li>
<p>Search is better than folder browsing. Immich indexes metadata, detected objects, faces, and CLIP embeddings. You can search &ldquo;beach sunset&rdquo; or pull up a person cluster without manually tagging every trip. Facial recognition and &ldquo;memories&rdquo; (this day X years ago) are built in. It is the Google Photos feature set, minus the ad business model.</p>
</li>
<li>
<p>Sharing is first-class. Shared albums, partner sharing, public links, read-only galleries. Multi-user homeserver setups work: first registrant becomes admin, then you add family accounts. OAuth is there if you want it. API keys for scripting.</p>
</li>
<li>
<p>The stack is serious self-hosting, not a single binary. Official path is Docker Compose: Immich app, PostgreSQL, Redis, and ML workers for thumbnails and search. Docs ask for at least 6 GB RAM and 2 CPU cores. First library import on a big camera roll takes time. Plan disk for originals plus generated thumbnails and embeddings.</p>
</li>
<li>
<p>The honest catch is you own reliability. Immich backs up the database metadata on a schedule, but the README is blunt: that is not your photos. You still need a real backup of <code>UPLOAD_LOCATION</code> and a 3-2-1 plan. Postgres should live on local disk, not a network share. Reverse proxy, TLS, and upgrades are on you. If you want zero ops, keep paying Google.</p>
</li>
<li>
<p>Wrong tool if you only need a fast public album site for a trip. <a href="https://www.tmfnk.com/use/tools/ddphotos/" >DD Photos</a> is lighter for that. Right tool if you want continuous backup from every family phone to hardware you control, with search and sharing that survive when a cloud vendor changes the pricing again.</p>
</li>
</ol>
<h2>Install &amp; first run
    </h2><p>Docs live at <a href="https://immich.app/" target="_blank" rel="noopener">immich.app</a>. Minimum path:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir immich-app <span class="o">&amp;&amp;</span> <span class="nb">cd</span> immich-app
</span></span><span class="line"><span class="cl">wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
</span></span><span class="line"><span class="cl">wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Edit <code>.env</code>: set <code>UPLOAD_LOCATION</code> to a directory with plenty of space, change <code>DB_PASSWORD</code> to something alphanumeric, uncomment <code>TZ</code> if you care about timeline sorting.</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker compose up -d</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Open <code>http://your-server:2283</code>, register (first user is admin), upload a test photo, then install the mobile app and log in with the same server URL. Try the demo first at <a href="https://demo.immich.app" target="_blank" rel="noopener">demo.immich.app</a> (<code>demo@immich.app</code> / <code>demo</code>) if you want to poke around before committing disk.</p>
<p>Migrating from Google Photos? Look at <a href="https://github.com/immich-app/immich-go" target="_blank" rel="noopener">immich-go</a> for Takeout imports. Full options (external libraries, hardware transcode, reverse proxy) are in the <a href="https://docs.immich.app/" target="_blank" rel="noopener">docs</a>.</p>
<p><strong>Worth your time if:</strong> you already run Docker somewhere with spare terabytes, you care where family photos live, and you want Google Photos ergonomics without renting Google&rsquo;s storage forever.</p>
<h2>Related TMFNK Content
    </h2><ul>
<li><strong><a href="https://www.tmfnk.com/use/tools/ddphotos/" >DD Photos: Build Your Own Fast, Private Photo Album Website</a></strong> Static WebP galleries when you want to publish a curated set, not back up every phone camera roll.</li>
<li><strong><a href="https://www.tmfnk.com/use/tools/tinycld/" >TinyCld: Self-Hosted Productivity Suite</a></strong> Same self-hosting instinct for mail and files; Immich fills the photo-shaped hole TinyCld does not cover.</li>
<li><strong><a href="https://www.tmfnk.com/use/tools/orbstack/" >OrbStack: Fast, Lightweight Docker &amp; Linux for Mac</a></strong> Easier local Docker if you want to trial Immich on a Mac before dedicating a home server.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Immersive Reading: Turn Dense Essays into Interactive Reading Editions</title><link>https://www.tmfnk.com/use/tools/immersive-reading/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/tools/immersive-reading/</guid><description>An agent skill that reshapes long essays, papers, and transcripts into static reading spaces with chapters, search, highlights, notes, and optional bilingual mode.</description><content:encoded><![CDATA[

<h2>🛠️ Immersive Reading
    </h2><table>
  <thead>
      <tr>
          <th></th>
          <th></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>What it is</td>
          <td>Agent skill that builds a static &ldquo;reading edition&rdquo; from a URL, essay, transcript, or local file</td>
      </tr>
      <tr>
          <td>Platform</td>
          <td>Claude Code, Codex, Cursor, Antigravity, other SKILL.md agents</td>
      </tr>
      <tr>
          <td>Price</td>
          <td>Free, open source (MIT)</td>
      </tr>
      <tr>
          <td>Link</td>
          <td><a href="https://github.com/ryannli/immersive-reading" target="_blank" rel="noopener">github.com/ryannli/immersive-reading</a></td>
      </tr>
  </tbody>
</table>
<p>Long essays are brutal on a plain HTML page. No landmarks, no search, no place for your own notes. You either skim or you white-knuckle the scroll. <a href="https://github.com/ryannli/immersive-reading" target="_blank" rel="noopener">Immersive Reading</a> hands the source to your coding agent and gets back a small static reader: chapters, anchor quotes, attribution, search, highlights, notes, light/dark themes, optional bilingual mode. The demo that sold me was Paul Graham&rsquo;s <a href="https://paulgraham.com/greatwork.html" target="_blank" rel="noopener">How to Do Great Work</a> turned into a <a href="http://ranli.me/read-paul-graham" target="_blank" rel="noopener">live reading space</a>.</p>
<ol>
<li>
<p>It is not a summary bot. The point is co-reading. The agent structures the original text into a path you can walk: chapter openings, section beats, scroll transitions. The words stay theirs. The affordances are new.</p>
</li>
<li>
<p>Input is loose. Paste a URL, essay, podcast transcript, paper, or local file. The skill validates article data, pulls source media when it can, and emits static output you can open locally or push to Vercel.</p>
</li>
<li>
<p>The study surface is the product. Search, highlights, copyable notes, source attribution, theme toggle. Optional bilingual mode if you ask for it (Spanish in the README example). This is closer to a personal textbook than a bookmarklet.</p>
</li>
<li>
<p>It ships as a reusable agent skill, not a SaaS app. Install once, run on the next piece you care about. Ryan Li&rsquo;s repo includes the <code>immersive-reading</code> skill under <code>skills/</code> plus a Claude Code plugin path if you want slash commands.</p>
</li>
<li>
<p>Early project, honest caveat. About 30 GitHub stars when I looked. You need a capable agent session and whatever API costs that implies. Output quality will vary with the model and how messy the source is. PDFs with broken layout will fight you.</p>
</li>
<li>
<p>Wrong tool if you want a one-click browser extension with zero agent setup. Right tool if you already live in Claude Code or Codex and want reading spaces you own as static files.</p>
</li>
</ol>
<h2>Install &amp; first run
    </h2><p><strong>Cursor or Codex (skills CLI):</strong></p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npx skills add ryannli/immersive-reading</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Pick your agent when prompted. No-prompt global install for Claude Code:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npx skills add ryannli/immersive-reading -g -a claude-code -y</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p><strong>Claude Code plugin</strong> (four separate messages):</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/plugin marketplace add ryannli/immersive-reading</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/plugin install immersive-reading@immersive-reading</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/reload-plugins</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/immersive-reading:immersive-reading</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p><strong>First run</strong> (works the same idea in Codex or Cursor after install):</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Use $immersive-reading on this article:
</span></span><span class="line"><span class="cl">https://paulgraham.com/greatwork.html</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Bilingual example:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Use $immersive-reading on this link and add Spanish bilingual mode:
</span></span><span class="line"><span class="cl">https://paulgraham.com/greatwork.html</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>The agent picks an output folder, builds the static site, and tells you when it is ready. Full options live in the <a href="https://github.com/ryannli/immersive-reading/blob/main/README.md" target="_blank" rel="noopener">README</a>.</p>
<p><strong>Worth your time if:</strong> you hoard long essays and transcripts, already use agent skills for work, and want a reader you control instead of another locked-in highlight app.</p>
<h2>Related TMFNK Content
    </h2><ul>
<li><strong><a href="https://www.tmfnk.com/use/tools/defuddle/" >Defuddle: Extract Clean Content from Any Web Page</a></strong> Strip the chrome first when a source page is noisy before you feed it to a reading build.</li>
<li><strong><a href="https://www.tmfnk.com/use/tools/youtube-to-doc/" >YouTube to Doc: Turn Videos into AI-Friendly Documentation</a></strong> Same instinct for video: reshape long input into something you can actually study.</li>
<li><strong><a href="https://www.tmfnk.com/read/books/how-to-take-smart-notes/" >How to Take Smart Notes</a></strong> Zettelkasten thinking for why structured rereading beats hoarding highlights.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Goldman Sachs on the AI Job Apocalypse: Real Pain, Not Mass Unemployment</title><link>https://www.tmfnk.com/read/articles/goldman-sachs-ai-job-apocalypse/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/read/articles/goldman-sachs-ai-job-apocalypse/</guid><description>Goldman Sachs Top of Mind interviews Acemoglu, Thompson, and its own economists on AI and jobs. Displacement could hit 9% of U.S. workers over a decade, but the firm expects adjustment, not permanent collapse.</description><content:encoded><![CDATA[
<p>Goldman&rsquo;s June 2026 <a href="https://www.goldmansachs.com/static-libs/pdf-redirect/prod/index.html?path=/pdfs/insights/goldman-sachs-research/an-ai-job-apocalypse/report.pdf" target="_blank" rel="noopener">Top of Mind report</a> is titled &ldquo;An AI Job Apocalypse?&rdquo; The question mark matters. Three economists disagree on how bad it gets.</p>
<ol>
<li>
<p>Joseph Briggs expects more than 9% of the U.S. labor force (about 15 million workers) displaced over a ten-year AI transition, then reabsorbed as new jobs appear. Neil Thompson of MIT calls AI a &ldquo;rising tide,&rdquo; not a &ldquo;crashing wave,&rdquo; because most jobs are task bundles only partly automatable. Daron Acemoglu expects a small net negative hit over five years, worse later if investment keeps favoring replacement over complementing workers.</p>
</li>
<li>
<p>Briggs&rsquo;s math is less cinematic than the title. Goldman assumes a 15% productivity uplift from full AI adoption. Historical patterns imply 6-7% displacement (3-14% range), with up to 9% plausible. Spread over ten years, peak unemployment might rise under 1 percentage point. Painful. Not apocalyptic.</p>
</li>
<li>
<p>Exposure scores alone mislead. Customer service reps and interior designers look similarly exposed, but designers need unstructured work and physical presence. Pair exposure with an IMF complementarity index: telephone operators, insurance claims clerks, and bill collectors face high substitution risk; education workers, judges, and construction managers face high augmentation potential.</p>
</li>
<li>
<p>Since ChatGPT launched, substitution is winning narrowly. Elsie Peng estimates substitution cut monthly payroll growth by roughly 25,000 jobs and pushed unemployment up 0.16 point. Augmentation added about 9,000 jobs a month. Net drag: 16,000 jobs a month, 0.1 point on unemployment. Younger, less-experienced workers took the hit. Peng notes the true drag is probably smaller once you count data-center construction and productivity-driven demand.</p>
</li>
<li>
<p>The new-graduate panic may be ahead of the evidence. College grad unemployment was 2.7% versus 2.1% pre-pandemic, but Rindels and Mei are not convinced AI is the driver yet. Disruption clusters in software publishing, data processing, and call centers. Grads still sit in high-adoption industries with automatable tasks, so near-term risk is real.</p>
</li>
<li>
<p>Acemoglu&rsquo;s line stuck with me: &ldquo;No general law of economics says that job creation must match job destruction.&rdquo; Pierfrancesco Mei finds displaced tech workers lose more than 3% in real wages and take a month longer to find work. Ryan Hammond adds that markets cannot price any of this yet: only 2% of S&amp;P 500 firms tied AI productivity gains to earnings in Q1 2026.</p>
</li>
</ol>
<p><strong>The takeaway:</strong> Treat &ldquo;job apocalypse&rdquo; as marketing and &ldquo;small net drag, unevenly distributed&rdquo; as the base case. If you are early career, watch substitution-exposed clerical work. Build toward augmentation-heavy skills: judgment, physical presence, accountability.</p>
<h2>Related TMFNK Content
    </h2><ul>
<li><strong><a href="https://www.tmfnk.com/read/articles/stanford-ai-index-2026/" >Stanford AI Index 2026: Key Takeaways from the State of AI</a></strong> The wider data picture: 73% of AI experts expect positive job impact, but only 23% of the public agrees.</li>
<li><strong><a href="https://www.tmfnk.com/read/articles/mit-genai-divide-state-of-ai-in-business-2025/" >MIT GenAI Divide: State of AI in Business 2025 Report</a></strong> Why firms pour billions into AI while most pilots never reach production, the demand side of the labor equation.</li>
<li><strong><a href="https://www.tmfnk.com/read/articles/the-rise-of-computer-use-and-agentic-coworkers/" >The Rise of Computer Use and Agentic Coworkers</a></strong> The technical path to automating work that never had an API, which is where substitution pressure is building fastest.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>FreeGraphPaper: Print-Ready Grids and Custom Paper in the Browser</title><link>https://www.tmfnk.com/use/tools/freegraphpaper/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/tools/freegraphpaper/</guid><description>Generate square, dot, isometric, hex, lined, and Cornell note paper as clean PDFs with no login. Custom spacing, colors, and paper sizes, all rendered client-side.</description><content:encoded><![CDATA[

<h2>🛠️ FreeGraphPaper
    </h2><table>
  <thead>
      <tr>
          <th></th>
          <th></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>What it is</td>
          <td>Browser graph paper generator with one-click templates and a custom sheet builder</td>
      </tr>
      <tr>
          <td>Platform</td>
          <td>Any modern web browser</td>
      </tr>
      <tr>
          <td>Price</td>
          <td>Free, no account</td>
      </tr>
      <tr>
          <td>Link</td>
          <td><a href="https://freegraphpaper.net/" target="_blank" rel="noopener">freegraphpaper.net</a></td>
      </tr>
  </tbody>
</table>
<p>You need 5 mm grid on A4 for a math worksheet. Or dot grid for a bullet journal spread. Or isometric paper for a quick 3D sketch. The usual path is a dodgy PDF from 2009 with a watermark and the wrong spacing. <a href="https://freegraphpaper.net/" target="_blank" rel="noopener">FreeGraphPaper</a> skips that: pick a template or open the custom editor, preview true to scale, download a clean PDF. No login, no install, no server round-trip for the export.</p>
<ol>
<li>
<p>Templates cover the grids people actually print. Square graph paper in metric and imperial (5 mm, 1 cm, 1/8 inch, 1/4 inch), dot grid, isometric (30°), hexagon, lined, and Cornell notes. One click from the homepage to a ready PDF if you do not need to tweak margins.</p>
</li>
<li>
<p>The custom builder is where it earns a bookmark. Set paper type, grid spacing, line color, margins, and orientation. Preview updates live. What you see is what should print at 100% scale. That matters when you are plotting by hand or teaching kids to measure grid squares with a ruler.</p>
</li>
<li>
<p>Paper size coverage is unusually thorough. US Letter, Legal, Tabloid, ANSI and Arch sizes, plus the full ISO A, B, and C series down to A10. If your printer tray holds it, the site probably lists it.</p>
</li>
<li>
<p>Everything runs client-side. The about page says grids are drawn as vector graphics and the PDF is generated on your device. Your settings do not upload to a server. Lines stay sharp because the output is vector, not a screenshot of a JPEG grid.</p>
</li>
<li>
<p>There is also a &ldquo;Draw on Graph Paper&rdquo; mode on the site for quick sketches in the browser before you export. Fine for a diagram you need today. Not a replacement for Figma or a full CAD stack. Think scratch paper, not production drafting.</p>
</li>
<li>
<p>Honest limitation: you still have to print correctly. The FAQ is right: use 100% scale and turn off &ldquo;fit to page&rdquo; or your 5 mm squares become lies. The tool cannot fix a printer driver that shrinks margins. And if you need log-log axes, polar coordinates, or music staff with bar lines, a heavier generator like CustomGraph may fit better. FreeGraphPaper optimizes for clean everyday grids, not every specialty chart type under the sun.</p>
</li>
</ol>
<h2>Install &amp; first run
    </h2><p>No install. Fast path:</p>
<ol>
<li>Open <a href="https://freegraphpaper.net/" target="_blank" rel="noopener">freegraphpaper.net</a></li>
<li>Click a template (e.g. <strong>5 mm Graph Paper</strong> on A4) or <strong>Create Custom Paper</strong></li>
<li>Adjust spacing, color, or margins if needed; watch the live preview</li>
<li>Download PDF (or PNG) and print at <strong>100% scale</strong></li>
</ol>
<p>Custom path: hit <strong>Create Custom Paper</strong>, choose grid type and paper size, then export. For a quick browser sketch first, use <strong>Draw on Graph Paper</strong> from the homepage.</p>
<p><strong>Worth your time if:</strong> you print grids more than once a semester, hate watermark PDFs, or want metric dot paper without buying a dedicated notebook.</p>
<h2>Related TMFNK Content
    </h2><ul>
<li><strong><a href="https://www.tmfnk.com/use/tools/bentopdf/" >BentoPDF: Privacy-First PDF Toolkit</a></strong> Merge or tweak the sheets after export if you are building a multi-page workbook.</li>
<li><strong><a href="https://www.tmfnk.com/use/tools/invoice-generator/" >Invoice Generator: Free, Beautiful Invoices in One Click</a></strong> Same no-account, instant-PDF pattern for a different paper problem.</li>
<li><strong><a href="https://www.tmfnk.com/use/tools/free-tools/" >Best Free Tools That Don&rsquo;t Require Signups or Show Ads</a></strong> FreeGraphPaper fits the same bucket: useful, immediate, no account wall.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Fine-Tune a Local SLM to Clean Master Data on Your Mac</title><link>https://www.tmfnk.com/use/tutorials/local-slm-data-cleaner-macos/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/tutorials/local-slm-data-cleaner-macos/</guid><description>Train Qwen3-0.6B on 100% synthetic SAP-style records with MLX, export to GGUF, and serve it offline with llama.cpp—no cloud API and no client data.</description><content:encoded><![CDATA[

<p>By the end you have a ~600 MB model on disk that takes messy vendor, customer, or material JSON and returns normalized fields (ISO country codes, trimmed text, canonical IBANs, fixed dates and amounts) with a rule-based safety net behind it. Plan on 30–45 minutes on an Apple Silicon Mac; most of that is downloads and training, not typing.</p>
<p><strong>TLDR:</strong></p>
<ul>
<li>Clone <a href="https://github.com/TMFNK/Local-SLM-Data-Cleaner" target="_blank" rel="noopener">Local-SLM-Data-Cleaner</a>, run <code>make setup</code> then <code>make model</code>.</li>
<li><code>make data</code> builds 1,000 synthetic messy→clean pairs from deterministic rules in <code>convention_spec.py</code> (no real client data).</li>
<li><code>make baseline-serve</code> + <code>make baseline</code> scores the stock Qwen3-0.6B before training; write down field accuracy.</li>
<li><code>make train</code> fine-tunes with MLX LoRA; <code>make fuse</code> and <code>make gguf</code> produce <code>qwen3-0.6b-cleaner-q8_0.gguf</code>.</li>
<li><code>make serve</code> + <code>make eval</code> + <code>make demo</code> prove the after score beats baseline and clean one live record.</li>
</ul>
<p><strong>Prerequisites:</strong> Mac with Apple Silicon (M1 or later), 8 GB RAM, ~5 GB disk, Homebrew. Intel Macs cannot run the MLX training step.</p>
<h2>Step 1: Install tools and clone the repo
    </h2><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">brew install python git llama.cpp
</span></span><span class="line"><span class="cl">git clone https://github.com/TMFNK/Local-SLM-Data-Cleaner.git
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> Local-SLM-Data-Cleaner
</span></span><span class="line"><span class="cl">make setup</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p><code>make setup</code> installs Python deps and mlx-lm. Success looks like <code>&gt;&gt; Done. Next: make model</code> with no red <code>ERROR</code> lines above it.</p>
<h2>Step 2: Download the base model
    </h2><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make model</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Pulls Qwen3-0.6B (~1.2 GB) from Hugging Face into your cache. No account needed. Done when it prints <code>model ready</code>.</p>
<h2>Step 3: Generate synthetic training data
    </h2><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make data
</span></span><span class="line"><span class="cl">make sanity</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p><code>make data</code> writes <code>data/train.jsonl</code>, <code>valid.jsonl</code>, and <code>test.jsonl</code> (default 800/100/100). The generator invents clean records, corrupts them like real messy master data, then labels each pair with the same deterministic algorithm the runtime uses later.</p>
<p><code>make sanity</code> should report 100% field accuracy on the test split. That is the answer key checking itself, not a model score yet.</p>
<p>Want more examples? <code>make data N=2000</code>.</p>
<h2>Step 4: Score the model before training
    </h2><p>Terminal 1:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make baseline-serve</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Wait for <code>listening on http://127.0.0.1:8080</code>. First run downloads ~600 MB.</p>
<p>Terminal 2 (same project folder):</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make baseline</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Note the <strong>field accuracy</strong> line. That is your before number. Stop the server in Terminal 1 with <code>Ctrl+C</code> before training.</p>
<h2>Step 5: Fine-tune with MLX LoRA
    </h2><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make train</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Loss should trend down over a few minutes. Output lands in <code>adapters/</code>. If the Mac runs out of memory, close browser tabs and retry with <code>make train BATCH=2</code>.</p>
<h2>Step 6: Fuse and export to GGUF
    </h2><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make fuse
</span></span><span class="line"><span class="cl">make gguf</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>If <code>make gguf</code> cannot find llama.cpp sources:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> .. <span class="o">&amp;&amp;</span> git clone https://github.com/ggml-org/llama.cpp <span class="o">&amp;&amp;</span> <span class="nb">cd</span> Local-SLM-Data-Cleaner</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>You should see <code>qwen3-0.6b-cleaner-q8_0.gguf</code> (~600 MB) when <code>ls *.gguf</code> runs clean.</p>
<h2>Step 7: Serve, evaluate, and demo
    </h2><p>Terminal 1:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make serve</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Terminal 2:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make <span class="nb">eval</span>
</span></span><span class="line"><span class="cl">make demo</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p><code>make eval</code> should beat your Step 4 baseline on field accuracy. <code>make demo</code> sends one messy JSON record through the server and prints cleaned output plus a <code>changes</code> audit list.</p>
<blockquote>
  <p><strong>Pro tip:</strong> Steps that call <code>make baseline-serve</code>, <code>make serve</code>, or <code>make eval</code> need two Terminal windows. The server holds port 8080 until you <code>Ctrl+C</code> it. If the port is busy, use <code>make serve PORT=8081</code> and <code>make eval PORT=8081</code>.</p>
</blockquote>
<h2>Cleanup
    </h2><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># stop the model server in Terminal 1 with Ctrl+C</span>
</span></span><span class="line"><span class="cl"><span class="c1"># optional: remove cloned llama.cpp sibling if you only needed it for gguf</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p><strong>If it breaks:</strong> <code>Cannot reach the model server</code> means the serve step is not listening yet. <code>Address already in use</code> means an old server is still on 8080. Training killed mid-run? Re-open Terminal, <code>cd</code> back into the repo, and continue; finished downloads and <code>data/</code> files are still there. Full troubleshooting lives in the <a href="https://github.com/TMFNK/Local-SLM-Data-Cleaner#troubleshooting" target="_blank" rel="noopener">project README</a>.</p>
<h2>Related TMFNK Content
    </h2><ul>
<li><strong><a href="https://www.tmfnk.com/use/projects/running-local-llms-from-first-run-to-fine-tuned/" >Running Local LLMs: From First Run to Fine-Tuned</a></strong> Hardware, quantization, and runtime layers that explain why a 0.6B GGUF model is enough on a laptop.</li>
<li><strong><a href="https://www.tmfnk.com/use/tools/llmfit/" >llmfit: Find Which LLM Models Run on Your Hardware</a></strong> Pick other small models that actually fit your RAM before you fine-tune the next experiment.</li>
<li><strong><a href="https://www.tmfnk.com/use/tutorials/leann-local-rag-on-macos/" >Set Up LEANN for Private Local RAG on macOS</a></strong> Same privacy story, different job: local retrieval instead of record normalization.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>My First Million #827: Mohnish Pabrai | Invest in This, It'll Be Worth 10x More by 2030</title><link>https://www.tmfnk.com/listen/podcasts/my-first-million-827-mohnish-pabrai-invest-in-this/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/my-first-million-827-mohnish-pabrai-invest-in-this/</guid><description>Mohnish Pabrai breaks down the mental models behind a lifetime of value investing: the mistress vs the wife, introducing randomness, why cloning beats invention, and his single best investment.</description><content:encoded><![CDATA[

<p><strong>Show:</strong> My First Million<br>
<strong>Episode:</strong> 827<br>
<strong>Host:</strong> Shaan Puri<br>
<strong>Guest:</strong> Mohnish Pabrai<br>
<strong>Duration:</strong> 1h 38m</p>
<h2>🎧 Listen
    </h2><iframe allow="autoplay *; encrypted-media *; fullscreen *; clipboard-write" frameborder="0" height="175" style="width:100%;max-width:660px;overflow:hidden;border-radius:10px;" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation" src="https://embed.podcasts.apple.com/us/podcast/mohnish-pabrai-this-will-save-you-10-years-of-bad/id1469759170?i=1000769090320"></iframe>
<h2>📺 Watch
    </h2><div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/FjWY1-gZ0Cs?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<h2>💡 One-Sentence Takeaway
    </h2><p><strong>Investing is 99% temperament and 1% IQ. The less you do, the better you perform. Patience isn&rsquo;t a virtue, it&rsquo;s the entire game.</strong></p>
<h2>📖 Summary
    </h2><p>Shaan Puri sits down with Mohnish Pabrai for the third time, and this one is the densest. Pabrai, who turned a million into hundreds of millions by applying Buffett&rsquo;s principles with almost religious discipline, unpacks the mental models that separate the top 1% of investors from everyone else.</p>
<p>The conversation ranges from the metaphysical (how to live an aligned life, Charlie Munger buying stocks 6 days before he died) to the tactical (why he won&rsquo;t touch Excel, the exact playbook for finding 100-baggers). Every framework is anchored in a story like the American Express, Rick Guerin, Sam Walton collecting losing lottery tickets, Ed Thorp meeting Mohnish in the nude. It&rsquo;s a masterclass disguised as a podcast.</p>
<h2>🔍 Insights
    </h2><h3>1. The Mistress Is Always Hotter Than the Wife
    </h3><p>The single most important mental model in this episode. What you own is the wife and you know her deeply, flaws and all. What you don&rsquo;t own is the mistress, she looks perfect from a distance. The gravitational pull toward the mistress is the force that destroys portfolios. Investors constantly want to swap what they know for what they don&rsquo;t.</p>
<p>The fix: raise your bar for action to an almost uncomfortable level. Guy Spier, one of Pabrai&rsquo;s friends, is so reluctant to trade that he considers it a competitive advantage. If you&rsquo;re going to replace something you own with something you don&rsquo;t, the thesis needs to hit you in the head like a 2x4. Not a hunch. Not a hot tip.</p>
<h3>2. Introduce Randomness
    </h3><p>Pabrai&rsquo;s entire investing career started because he picked up a Peter Lynch book at Heathrow Airport in 1994&hellip; a completely random act. That led to Buffett, which led to Munger, which led to Omaha, which led to friendships that reshaped his life.</p>
<p>Shaan tells the parallel story of going to Farm Con in Kansas City despite knowing nothing about farming. There he met Kevin VanTrump, who ran a 20-year newsletter for farmers. Shaan cloned the model for crypto, built the Milk Road newsletter, and sold it for millions. Randomness + cloning = the Milk Road.</p>
<p>The lesson: you can&rsquo;t plan the serendipity that changes your life. You can only put yourself in positions where it&rsquo;s more likely to happen.</p>
<h3>3. Humans Are Terrible at Cloning
    </h3><p>Everyone knows Elon&rsquo;s playbook. Everyone at Boeing, every car company, every defense contractor has read the same books and seen the same results. None of them do anything about it.</p>
<p>Pabrai calls this the most underappreciated advantage in business. Sam Walton was not a genius. He had no original ideas. Walmart was a clone of Kmart. Sam&rsquo;s Club was a clone of Price Club. But Walton had something almost nobody else has: the discipline to execute a copied idea better than the original.</p>
<blockquote>
  <p>&ldquo;Everything at Walmart came from somewhere else.&rdquo;</p>
</blockquote>
<h3>4. Take a Simple Idea Seriously
    </h3><p>This one unlocks all the others. Without it, none of the mental models work. You pick one thing: one market, one strategy, one type of business; and you go all in.</p>
<p>Pabrai&rsquo;s example: Turkey. He saw a market where the average public company cycles through its entire shareholder base every 17 days. Everyone was gambling. He decided to be an inch wide and a mile deep. He studied every company in the country. Found Reysas (a warehouse operator at 3% of liquidation value) and rode it to a 90-100 bagger.</p>
<h3>5. Never Use Excel
    </h3><p>If you can&rsquo;t explain your investment thesis to a 10-year-old in four sentences, pass. Excel models create false precision. The best investments are obvious; they hit you in the head.</p>
<p>Buffett&rsquo;s American Express bet after the salad oil scandal: he didn&rsquo;t run a DCF. He stood by the cash register at Omaha restaurants and watched whether people still handed over the Amex card. They did. He put 40% of his fund into one stock.</p>
<h3>6. The Stock Market Is a Church With a Casino Attached
    </h3><p>Buffett&rsquo;s framing. Pabrai&rsquo;s conclusion: the more crowded the casino gets, the better it is for serious investors. Every hyperactive trader, every options gambler, every Robinhood day trader is transferring wealth to the inactive. The game we are playing is transferring wealth from the active to the inactive.</p>
<h3>7. The Rick Guerin Cautionary Tale
    </h3><p>In the 1960s, there were three: Warren, Charlie, and Rick Guerin. Rick was in a hurry. He used leverage. When the 1973-74 crash hit, he got margin calls. Warren bought Rick&rsquo;s Berkshire shares for $40 each. Those shares are worth $700,000+ today.</p>
<p>The lesson: if you&rsquo;re even a slightly above-average investor, spend less than you earn, and never use leverage, you cannot help but get rich over a lifetime.</p>
<h3>8. The Inner Scorecard
    </h3><p>Buffett&rsquo;s most important lesson from his father: do you want to be the greatest lover in the world but known as the worst? Or the worst lover known as the greatest? Your answer determines whether you live by an inner scorecard or an outer one.</p>
<p>Pabrai&rsquo;s shortcut: &ldquo;If they can criticize Gandhi, you&rsquo;re fair game.&rdquo; Criticism is inevitable. The inner scorecard is how you ignore it.</p>
<h3>9. Mohnish&rsquo;s Best Investment
    </h3><p>Reysas, a Turkish warehouse operator. Market cap at entry: $15-16 million. Liquidation value: $800 million. The market hated it because of currency instability, inflation, and Turkey&rsquo;s political chaos. Pabrai realized that warehouses are land, cement, and steel; all inflation-indexed. The currency chaos didn&rsquo;t matter because the assets would reprice.</p>
<p>The entry price was so cheap that a US fund, Templeton, sold its entire 5% stake for $1 million. Pabrai bought every share.</p>
<p>Seven years later: 90x in dollar terms.</p>
<h3>10. Don&rsquo;t Die at 25 and Be Buried at 75
    </h3><p>Ben Franklin&rsquo;s quote, channeled through Munger. Pabrai watched Charlie make investment decisions 6 days before he died at age 99; ignoring his mortality completely. The call to action: keep growing, keep learning, keep getting your music out until the very end.</p>
<h3>11. An Aligned Life
    </h3><p>The hardest question Shaan asks is the simplest: what percentage of Americans who pick stocks are good investors? Under 1%. The real edge is temperament. And temperament flows from alignment.</p>
<p>Pabrai&rsquo;s framework: our calling is hard-coded by age 5. Most of us spend decades misaligned because the world tells us who to be. The work of life is understanding who you actually are and building everything around that. Get your music out.</p>
<h2>📋 Show Notes
    </h2><p>(0:00) Intro<br>
(1:25) Mental models of the top 1%<br>
(3:38) The mistress is always hotter than the wife<br>
(6:37) Introduce randomness in your life<br>
(10:47) Humans are poor at copying<br>
(20:13) Take a simple idea seriously<br>
(23:02) Be an inch wide and a mile deep<br>
(30:29) Never use Excel<br>
(35:03) Wait for fat pitches<br>
(39:38) The stock market is a church with a casino<br>
(44:01) Paying $650,000 to have lunch with Warren Buffett<br>
(45:43) The cautionary tale of Rick Guerin<br>
(47:22) The inner scorecard<br>
(49:25) The future of Berkshire Hathaway<br>
(51:29) Mohnish&rsquo;s best investment<br>
(1:02:39) The hardest question<br>
(1:06:16) How to beat the index<br>
(1:11:25) Mohnish&rsquo;s stock picks for 2026<br>
(1:22:26) S&amp;P 500<br>
(1:24:57) Life advice disguised as investing advice<br>
(1:29:32) Studying the greatest investors<br>
(1:37:51) If you remember nothing else, remember this</p>
<h2>🔗 Links
    </h2><ul>
<li><a href="https://www.youtube.com/watch?v=FjWY1-gZ0Cs" target="_blank" rel="noopener">Watch on YouTube</a></li>
<li><a href="https://podcasts.apple.com/us/podcast/my-first-million/id1469759170" target="_blank" rel="noopener">Apple Podcasts</a></li>
<li><a href="https://a.co/d/0hkx1t8g" target="_blank" rel="noopener">The Dhandho Investor</a> Mohnish&rsquo;s book</li>
<li><a href="https://www.youtube.com/watch?v=qgeQ5kMVwRA" target="_blank" rel="noopener">Mohnish Part 1</a></li>
<li><a href="https://www.youtube.com/watch?v=Zv3Fynm8_rA" target="_blank" rel="noopener">Mohnish Part 2</a></li>
<li><a href="https://www.youtube.com/@MyFirstMillions" target="_blank" rel="noopener">My First Million Podcast</a></li>
</ul>
<p><strong>More Mohnish Pabrai on TMFNK:</strong></p>
<ul>
<li><a href="https://www.tmfnk.com/listen/podcasts/tip-812-mohnish-pabrai-berkshire-letting-winners-run/" >TIP812: Mohnish Pabrai — Berkshire &amp; Letting Winners Run</a></li>
<li><a href="https://www.tmfnk.com/listen/podcasts/tip-719-mohnish-pabrai/" >TIP719: Mohnish Pabrai on Investing and Life Lessons</a></li>
<li><a href="https://www.tmfnk.com/listen/podcasts/diary-of-a-ceo-mohnish-pabrai/" >Diary of a CEO: Mohnish Pabrai — The Dhandho Investor</a></li>
<li><a href="https://www.tmfnk.com/read/books/the-dhandho-investor-by-mohnish-pabrai/" >The Dhandho Investor Book Review</a></li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Linux Basics for Hackers: A Self-Study Course Using Community Notes</title><link>https://www.tmfnk.com/use/projects/linux-basics-for-hackers-course-notes/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/projects/linux-basics-for-hackers-course-notes/</guid><description>A complete 17-module course built from community study notes on the classic OccupyTheWeb book. Covers terminal basics, permissions, networking, bash scripting, Python, and more; all free.</description><content:encoded><![CDATA[

<p>The best way to learn Linux for security work isn&rsquo;t a expensive course or a certification. It&rsquo;s a terminal, a VM, and a set of notes someone wrote because they wanted to actually understand the material. This repo by <a href="https://github.com/ahegazy0/linux-basics-for-hackers-notes" target="_blank" rel="noopener">ahegazy0</a> is exactly that: a structured course built from personal study notes on OccupyTheWeb&rsquo;s <em>Linux Basics for Hackers</em>.</p>
<p>17 modules, plain English, practice exercises after every section. No gatekeeping, no fluff.</p>
<h2>What&rsquo;s Inside
    </h2><p>The course follows the book&rsquo;s structure but rewrites every concept in straightforward language. Each module covers one topic area with explanations, command references, and hands-on practice.</p>
<table>
  <thead>
      <tr>
          <th>Module</th>
          <th>Topic</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>00</td>
          <td>Getting Started &amp; Setting Up Your Lab</td>
      </tr>
      <tr>
          <td>01</td>
          <td>Terminal Basics: <code>pwd</code>, <code>ls</code>, <code>cd</code>, <code>man</code>, <code>whoami</code>, <code>locate</code></td>
      </tr>
      <tr>
          <td>02</td>
          <td>Text Manipulation: <code>cat</code>, <code>grep</code>, <code>sed</code>, <code>head</code>, <code>tail</code>, pipes</td>
      </tr>
      <tr>
          <td>03</td>
          <td>Managing Networks: <code>ifconfig</code>, <code>iwconfig</code>, <code>dhclient</code>, MAC spoofing, <code>dig</code></td>
      </tr>
      <tr>
          <td>04</td>
          <td>Software Management: <code>apt-get</code>, <code>git clone</code>, repositories</td>
      </tr>
      <tr>
          <td>05</td>
          <td>Permissions: <code>chmod</code>, <code>chown</code>, SUID, privilege escalation</td>
      </tr>
      <tr>
          <td>06</td>
          <td>Process Management: <code>ps</code>, <code>top</code>, <code>kill</code>, foreground/background</td>
      </tr>
      <tr>
          <td>07</td>
          <td>Environment Variables: <code>PATH</code>, <code>PS1</code>, <code>HISTSIZE</code>, persistence</td>
      </tr>
      <tr>
          <td>08</td>
          <td>Bash Scripting: variables, conditionals, loops, practical scanners</td>
      </tr>
      <tr>
          <td>09</td>
          <td>Archiving &amp; Compression: <code>tar</code>, <code>gzip</code>, <code>bzip2</code>, <code>dd</code></td>
      </tr>
      <tr>
          <td>10</td>
          <td>Filesystem &amp; Storage: mounting, <code>fdisk</code>, <code>df</code>, <code>fsck</code></td>
      </tr>
      <tr>
          <td>11</td>
          <td>The Logging System: <code>/var/log</code>, <code>rsyslog</code>, <code>shred</code>, covering tracks</td>
      </tr>
      <tr>
          <td>12</td>
          <td>Using &amp; Abusing Services: Apache, SSH, MySQL, systemctl</td>
      </tr>
      <tr>
          <td>13</td>
          <td>Security &amp; Anonymity: Tor, proxychains, VPNs, operational security</td>
      </tr>
      <tr>
          <td>14</td>
          <td>Wireless Networking: monitor mode, aircrack-ng, Bluetooth</td>
      </tr>
      <tr>
          <td>15</td>
          <td>The Kernel &amp; LKMs: <code>lsmod</code>, <code>modprobe</code>, <code>sysctl</code>, <code>/proc</code></td>
      </tr>
      <tr>
          <td>16</td>
          <td>Automation &amp; Scheduled Jobs: <code>crontab</code>, <code>systemctl enable</code></td>
      </tr>
      <tr>
          <td>17</td>
          <td>Python Scripting: port scanner from scratch, libraries, pip</td>
      </tr>
  </tbody>
</table>
<h2>What Makes It Different
    </h2><p>Most Linux tutorials teach you to be a sysadmin. This one teaches you to think like someone who needs to understand the system well enough to find its weak points. The difference shows up everywhere.</p>
<p>In Module 5, permissions aren&rsquo;t just a table of <code>rwx</code> values; they&rsquo;re connected directly to privilege escalation. The SUID bit isn&rsquo;t explained as a feature. It&rsquo;s explained as an attack surface, with the <code>find</code> command to discover misconfigured binaries on any system.</p>
<p>In Module 11, logs aren&rsquo;t just something you read. You learn how to stop the logging service (<code>service rsyslog stop</code>), how to shred files so they can&rsquo;t be recovered (<code>shred -vzu</code>), and the smarter approach of surgically editing only the lines that contain your activity.</p>
<p>In Module 12, services aren&rsquo;t just things you start and stop. You see each one through the lens of default credentials, open ports, and the metadata that scanning tools reveal about a target.</p>
<p>This isn&rsquo;t a theory course. It&rsquo;s a get-your-hands-on-the-keyboard course.</p>
<h2>Getting Started
    </h2><p>You need two things: VirtualBox and Kali Linux. Module 00 walks through the entire setup process: downloading the ISO, creating the VM, allocating RAM, and getting to the login screen. From there, you&rsquo;re ready for Module 1.</p>
<p>Everything runs in the VM. Break something? Reset it. Your host machine never notices. That&rsquo;s the whole point of practicing in a sandbox.</p>
<h2>What You&rsquo;ll Be Able to Do After
    </h2><p>By the end of Module 17, you&rsquo;ll have written your own port scanner from scratch in Python. You&rsquo;ll understand the Linux filesystem well enough to navigate any Unix system blindfolded. You&rsquo;ll know how to control processes, manage services, set up cron jobs, manipulate text at scale, and handle disk images with <code>dd</code>. You&rsquo;ll understand the kernel well enough to inspect loaded modules and adjust runtime parameters.</p>
<p>The course ends with a Python port scanner. But the real deliverable is the ability to look at an unfamiliar Linux system, understand what&rsquo;s running on it, and know how each piece can be used.</p>
<h2>Links
    </h2><ul>
<li><strong><a href="https://github.com/ahegazy0/linux-basics-for-hackers-notes" target="_blank" rel="noopener">Course Repository</a></strong> All 17 modules on GitHub</li>
<li><strong><a href="https://www.kali.org/get-kali/" target="_blank" rel="noopener">Kali Linux</a></strong> Download the ISO</li>
<li><strong><a href="https://www.virtualbox.org/" target="_blank" rel="noopener">VirtualBox</a></strong> Free VM software</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>TinyCld: Self-Hosted Productivity Suite with Native Protocols and Zero Per-User Costs</title><link>https://www.tmfnk.com/use/tools/tinycld/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/tools/tinycld/</guid><description>A self-hosted alternative to Google Workspace and Microsoft 365. Mail, calendar, contacts, drive, docs, and spreadsheets; all speaking native protocols (IMAP, CalDAV, CardDAV, WebDAV). One Docker container, free forever.</description><content:encoded><![CDATA[

<h2>TinyCld: Your Cloud, Your Rules
    </h2><p><strong>TinyCld</strong> <a href="https://tinycld.org" target="_blank" rel="noopener">https://tinycld.org</a> is a self-hosted productivity suite that replaces Google Workspace and Microsoft 365 with a single Docker container. Six integrated apps (mail, calendar, contacts, drive, text editor, and spreadsheet), all speaking native protocols so you can use Apple Mail, Thunderbird, GNOME Calendar, or Finder alongside the web UI.</p>
<p>The pitch is simple: own your data, pay nothing per user, and deploy on a $5 VPS in fifteen minutes. No telemetry, no tracking pixels, no data mining. Your emails, files, and contacts live on your server.</p>
<h3>Key Features
    </h3><ul>
<li><strong>Six Integrated Apps</strong> - Mail, Calendar, Contacts, Drive, Text (docs), Calc (spreadsheets)</li>
<li><strong>Native Protocols</strong> - IMAP (RFC 9051), SMTP (RFC 5321), CalDAV (RFC 4791), CardDAV (RFC 6352), WebDAV (RFC 4918)</li>
<li><strong>$0 Per User, Forever</strong> - No per-seat pricing, no premium tiers, no surprises</li>
<li><strong>One Docker Container</strong> - Single image, single compose file, works on any Linux VM</li>
<li><strong>Let&rsquo;s Encrypt Built In</strong> - HTTPS out of the box, no cert management needed</li>
<li><strong>Multi-Org Support</strong> - Users can belong to multiple organizations with different roles</li>
<li><strong>Real-Time Updates</strong> - Server-sent events across all apps, no polling</li>
<li><strong>iOS App</strong> - Native app on the App Store, bring your own server</li>
<li><strong>Google Takeout Import</strong> - Drag a ZIP onto TinyCld, walks away</li>
</ul>
<h3>What You Get
    </h3><table>
  <thead>
      <tr>
          <th>App</th>
          <th>Protocol</th>
          <th>What It Does</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Mail</td>
          <td>IMAP + SMTP</td>
          <td>Threaded conversations, labels, attachments, delivery tracking. Connect with any IMAP client.</td>
      </tr>
      <tr>
          <td>Calendar</td>
          <td>CalDAV</td>
          <td>Recurring events, guest management, RSVP, reminders, color-coded categories.</td>
      </tr>
      <tr>
          <td>Contacts</td>
          <td>CardDAV</td>
          <td>Shared directory with favorites, notes, org-wide syncing.</td>
      </tr>
      <tr>
          <td>Drive</td>
          <td>WebDAV</td>
          <td>File storage with versioning, share links, role-based permissions, thumbnails, trash.</td>
      </tr>
      <tr>
          <td>Text</td>
          <td>-</td>
          <td>Rich document editor with tables, comments, live CRDT collaboration. .docx and Markdown round-trips.</td>
      </tr>
      <tr>
          <td>Calc</td>
          <td>-</td>
          <td>Spreadsheets with formulas, named ranges, snapshots, real-time co-editing. CSV and .xlsx import/export.</td>
      </tr>
  </tbody>
</table>
<h3>Get Started
    </h3><h4>Installation
    </h4><p>Requires Docker on any Linux VM:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Create a directory and pull the compose file</span>
</span></span><span class="line"><span class="cl">mkdir tinycld <span class="o">&amp;&amp;</span> <span class="nb">cd</span> tinycld
</span></span><span class="line"><span class="cl">curl -O https://raw.githubusercontent.com/tinycld/app/main/docker-compose.yml
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Start everything</span>
</span></span><span class="line"><span class="cl">docker compose up -d</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>That is it. The output looks like this:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><pre><code>✓ Pulling tinycld:latest
✓ Acquired Let&#39;s Encrypt cert · &lt;your domain&gt;.org
✓ IMAP listening on :993
✓ SMTP listening on :465
✓ Web ready on :443
› Ready in 14.7s</code></pre></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Your team&rsquo;s new home lives at <code>https://your-domain.com/</code>.</p>
<h4>Google Migration
    </h4><p>If you are switching from Google Workspace:</p>
<ol>
<li>Download your archive from Google Takeout (Mail, Calendar, Contacts, Drive in one bundle)</li>
<li>Drop the <code>.zip</code> into TinyCld and no unpacking needed</li>
<li>Walk away. Re-imports are idempotent. Contacts dedupe by vCard UID, events by ICAL_UID, calendars reuse by name.</li>
</ol>
<p>The parsing happens in a web worker, so the UI stays snappy even with a 20 GB archive.</p>
<h3>For Developers
    </h3><p>TinyCld is not just a productivity suite, it is a platform you can build on. Every package starts with a working app shell that already handles auth, multi-org, real-time data, email, files, notifications, push, audit logs, forms, and theming.</p>
<p>Drop in a <code>manifest.ts</code>, get all of that for free, and ship the parts that actually matter to you:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-typescript" data-lang="typescript"><span class="line"><span class="cl"><span class="kr">export</span> <span class="k">default</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nx">name</span><span class="o">:</span> <span class="s2">&#34;CRM&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nx">slug</span><span class="o">:</span> <span class="s2">&#34;crm&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nx">routes</span><span class="o">:</span> <span class="p">{</span> <span class="nx">directory</span><span class="o">:</span> <span class="s2">&#34;screens&#34;</span> <span class="p">},</span>
</span></span><span class="line"><span class="cl">  <span class="nx">collections</span><span class="o">:</span> <span class="p">{</span> <span class="nx">register</span><span class="o">:</span> <span class="s2">&#34;collections&#34;</span> <span class="p">},</span>
</span></span><span class="line"><span class="cl">  <span class="nx">nav</span><span class="o">:</span> <span class="p">{</span> <span class="nx">label</span><span class="o">:</span> <span class="s2">&#34;CRM&#34;</span><span class="p">,</span> <span class="nx">icon</span><span class="o">:</span> <span class="s2">&#34;users&#34;</span> <span class="p">},</span>
</span></span><span class="line"><span class="cl"><span class="p">};</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>The foundation includes:</p>
<ul>
<li>Auth (sessions, signup, login, OAuth-ready)</li>
<li>Multi-org with per-org roles</li>
<li>Live data via TanStack DB</li>
<li>Optimistic mutations with rollback</li>
<li>Transactional email + IMAP/SMTP serving</li>
<li>File upload, versioning, share, thumbnails</li>
<li>In-app notifications + native push (Expo)</li>
<li>Append-only audit log</li>
<li>Hook Form + Zod, typed end-to-end</li>
<li>Light + dark theming with semantic tokens</li>
<li>One codebase for web + iOS + Android (Expo Router)</li>
</ul>
<p>Scaffold a new package in sixty seconds:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npx @tinycld/bootstrap
</span></span><span class="line"><span class="cl"><span class="c1"># ? What&#39;s the package name? crm</span>
</span></span><span class="line"><span class="cl"><span class="c1"># ? Include a Go server? y</span>
</span></span><span class="line"><span class="cl"><span class="c1"># ✓ Created ./crm</span>
</span></span><span class="line"><span class="cl"><span class="c1"># ✓ Linked crm into the workspace</span>
</span></span><span class="line"><span class="cl"><span class="c1"># ✓ Generated routes, types, migrations</span>
</span></span><span class="line"><span class="cl"><span class="c1"># → open http://localhost:7100/a/&lt;org&gt;/crm</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<h3>Protocols
    </h3><p>Every app speaks its native protocol. Use the web UI, your favorite desktop client, or both:</p>
<table>
  <thead>
      <tr>
          <th>Protocol</th>
          <th>RFC</th>
          <th>Use With</th>
          <th>Port</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>IMAP</td>
          <td>9051</td>
          <td>Apple Mail, Thunderbird, Outlook, mutt</td>
          <td>:993</td>
      </tr>
      <tr>
          <td>SMTP</td>
          <td>5321</td>
          <td>Any SMTP-capable client</td>
          <td>:465</td>
      </tr>
      <tr>
          <td>CalDAV</td>
          <td>4791</td>
          <td>Apple Calendar, GNOME Calendar, DAVx5</td>
          <td>:443</td>
      </tr>
      <tr>
          <td>CardDAV</td>
          <td>6352</td>
          <td>Apple Contacts, GNOME Contacts, DAVx5</td>
          <td>:443</td>
      </tr>
      <tr>
          <td>WebDAV</td>
          <td>4918</td>
          <td>macOS Finder, Windows Explorer, Linux Nautilus</td>
          <td>:443</td>
      </tr>
  </tbody>
</table>
<h3>Platforms
    </h3><ul>
<li>🐧 <strong>Linux</strong> (any Docker-capable VM)</li>
<li>🍎 <strong>macOS</strong> (via Docker Desktop)</li>
<li>📱 <strong>iOS</strong> (native app on the App Store)</li>
<li>📱 <strong>Android</strong> (via Expo)</li>
</ul>
<h3>Why This Tool Rocks
    </h3><ul>
<li>Replaces Google Workspace and Microsoft 365 with a single Docker container</li>
<li>Native protocols mean you are not locked into a web UI</li>
<li>$0 per user forever:no per-seat pricing, no premium tiers</li>
<li>Private by default: no telemetry, no tracking pixels, external email images proxied</li>
<li>Google Takeout import is idempotent and handles 20 GB archives in a web worker</li>
<li>Developer platform with auth, multi-org, real-time, push, and audit built in</li>
<li>iOS app that connects to your self-hosted server with native push</li>
<li>Open source under a permissive license</li>
</ul>
<p>🔗 <strong>GitHub:</strong> <a href="https://github.com/tinycld/app" target="_blank" rel="noopener">github.com/tinycld/app</a>
🔗 <strong>Website:</strong> <a href="https://tinycld.org" target="_blank" rel="noopener">tinycld.org</a></p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>The Wealth Ladder Explained: How to Build Wealth at Every Stage | Nick Maggiulli</title><link>https://www.tmfnk.com/see/videos/the-wealth-ladder-explained/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/see/videos/the-wealth-ladder-explained/</guid><description>Nick Maggiulli breaks down his six-level wealth ladder framework, explaining why your financial strategy must change as your net worth grows, and why following the wrong advice at the wrong level is the most common wealth-building trap.</description><content:encoded><![CDATA[

<h2>▶️ Watch the Video
    </h2><div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/uliK3d46BJo?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<h2>📝 VIDEO INFORMATION
    </h2><p><strong>Title:</strong> The Wealth Ladder Explained: How to Build Wealth at Every Stage | Nick Maggiulli<br>
<strong>Creator/Author:</strong> Nick Maggiulli<br>
<strong>Publication/Channel:</strong> Wealth on the Move (Hoffman Wealth Management)<br>
<strong>Date:</strong> Late 2025<br>
<strong>URL/Link:</strong> <a href="https://www.youtube.com/watch?v=uliK3d46BJo" target="_blank" rel="noopener">https://www.youtube.com/watch?v=uliK3d46BJo</a><br>
<strong>Duration:</strong> ~30 minutes<br>
<strong>E-E-A-T Assessment:</strong><br>
<strong>Experience:</strong> Strong - Nick Maggiulli is COO of Ritholtz Wealth Management with 9+ years of weekly financial blogging, two published books, and hands-on experience in wealth management operations<br>
<strong>Expertise:</strong> Exceptional - Deep data-driven analysis of personal finance backed by proprietary research across multiple countries; known for rigorous quantitative approach to spending, income, and investment behavior<br>
<strong>Authoritativeness:</strong> Definitive - Bestselling author of <em>Just Keep Buying</em> (2022) and <em>The Wealth Ladder</em> (2025), regular contributor to major financial publications, creator of the widely-read <em>Of Dollars and Data</em> blog<br>
<strong>Trust:</strong> High - Evidence-based approach with transparent limitations; openly acknowledges when data is mixed or inconclusive; honest about his own preferences and biases</p>
<hr>
<h2>🎯 HOOK
    </h2><p>I used to think building wealth was about finding the perfect investment strategy. The right asset allocation, the best funds, the optimal rebalancing frequency. Nick Maggiulli&rsquo;s framework made me realize I had it backwards. The right strategy depends entirely on where you are right now, and the biggest mistake isn&rsquo;t picking the wrong investment. It&rsquo;s following the right advice at the wrong time.</p>
<hr>
<h2>💡 ONE-SENTENCE TAKEAWAY
    </h2><p><strong>Your financial strategy must change as your wealth grows, just like a fitness instructor who gives different advice to someone who&rsquo;s morbidly obese than to a well-trained athlete, and the same logic applies to your financial life.</strong></p>
<hr>
<h2>📖 SUMMARY
    </h2><p>Nick Maggiulli, COO of Ritholtz Wealth Management and author of <em>The Wealth Ladder</em>, sits down with Will Hoffman on <em>Wealth on the Move</em> to break down his six-level wealth framework. The core insight: your net worth determines which financial strategies actually move the needle. Most people get stuck because they follow the wrong playbook for their level.</p>
<p>The wealth ladder uses net worth (assets minus liabilities) to sort people into six levels. Level one (under $10,000) and level two ($10,000 to $100,000) each represent about 20% of US households. Level three ($100,000 to $1 million) is the largest bucket at 40%. Level four ($1 to $10 million) holds 18%. Levels five and six ($10 million+) top out at just 2% of households.</p>
<p>The conversation quickly lands on the single biggest misconception in personal finance: <strong>spending isn&rsquo;t the problem, income is</strong>. Maggiulli cites data from multiple countries showing that savings rates rise with income, both in absolute and percentage terms. You can only eat one stomach&rsquo;s worth of food. A 10x income increase doesn&rsquo;t mean 10x spending on groceries. The excess gets saved and invested, and that gap compounds.</p>
<p>For level one, the priority is simple: build financial redundancy. An emergency fund isn&rsquo;t just a rule of thumb. It prevents the &ldquo;bad luck cycle&rdquo; where a single blown tire can cascade into job loss and financial ruin. Maggiulli points to COVID stimulus checks as evidence: even a few thousand dollars gave people breathing room they&rsquo;d never felt before.</p>
<p>Level two shifts focus to income growth through skills and education. Not necessarily degrees. Maggiulli notes that college graduate unemployment is converging with high school graduate rates for the first time. But holistic skill-building matters more than the credential. &ldquo;Someone can watch three hours of YouTube every day and increase their skills at the same trajectory as somebody studying for finals.&rdquo;</p>
<p>At level three and beyond, investing starts to matter. But most people get the sequence wrong. They obsess over asset allocation before they&rsquo;ve built enough capital for it to make a difference. Maggiulli illustrates this with his own example from <em>Just Keep Buying</em>: a 23-year-old with $1,000 saved earning a 10% return makes $100. Easily spent on a single night out.</p>
<p>The conversation also covers risk tolerance (tied to individual circumstances, not just age), rebalancing (doing it less frequently is fine), liquidity (underrated until you need it), and the psychological weight of higher wealth levels. At level five and six, money transforms from consumption tool to impact tool. With that shift come questions of preservation, guilt, and purpose.</p>
<hr>
<h2>🔍 INSIGHTS
    </h2><p>The data consistently shows that savings rates increase with income levels, both absolutely and as a percentage. Extreme frugality helps at the margins, but career earnings are the primary driver of wealth accumulation for most people. Maggiulli&rsquo;s framework makes this hard to ignore.</p>
<p>The advice that works at one level can be neutral or harmful at another. Level one needs safety. Level two needs income growth. Level three needs investing discipline. Level four needs risk management. Level five needs preservation and purpose. This sounds obvious in retrospect, but most people never stop to ask which level they&rsquo;re actually playing at.</p>
<p>Below $10,000 in net worth, a single unexpected expense can trigger a cascade of negative outcomes. Financial redundancy isn&rsquo;t optimization, it&rsquo;s survival. Even a small emergency fund transforms your relationship with risk in ways that are hard to appreciate until you&rsquo;ve been on both sides of that line.</p>
<p>A 10% return on $1,000 is $100. The leverage from career growth (raises, promotions, new skills) dwarfs investment returns for anyone in the first two wealth levels. Focus on earning before investing. I keep coming back to this one because it&rsquo;s so obviously true and so commonly ignored.</p>
<p>Your job type, industry correlation with markets, family situation, and other liabilities determine your appropriate risk profile more than your age does. Someone working at a wealth management firm should take less market risk because their income already correlates with market returns. Most formulas skip this variable entirely.</p>
<p>Maggiulli&rsquo;s thought experiment on market timing is worth sitting with: even if you could see all the future headlines during the COVID crash, you&rsquo;d still get the timing wrong. Knowing the future doesn&rsquo;t mean you can profit from it. That&rsquo;s not pessimism, it&rsquo;s just the data.</p>
<p>Illiquid investments aren&rsquo;t just risky. They can be worse than losses. At least losses can be used for tax purposes. Trapped capital with no path to exit is a uniquely frustrating position, and one Maggiulli admits he didn&rsquo;t appreciate until he experienced it.</p>
<h3>What This Means in Practice
    </h3><p>The wealth ladder framework rejects one-size-fits-all advice, which is still the dominant model in most financial media. That alone makes it useful. By framing wealth levels as a ladder with different strategies, Maggiulli avoids the moralizing that often accompanies discussions of spending and saving. The <em>Succession</em> quote about &ldquo;$5 million being the poorest rich person&rdquo; captures how wealth benchmarks shift with experience. Enough is psychological, not numerical, and that tension gets more acute the higher you climb.</p>
<hr>
<h2>🛠️ FRAMEWORKS &amp; MODELS
    </h2><h3>The Wealth Ladder (Six Levels)
    </h3><table>
  <thead>
      <tr>
          <th>Level</th>
          <th>Net Worth Range</th>
          <th>% of US Households</th>
          <th>Primary Strategy</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>&lt; $10,000</td>
          <td>20%</td>
          <td>Build financial safety/redundancy</td>
      </tr>
      <tr>
          <td>2</td>
          <td>$10,000 – $100,000</td>
          <td>20%</td>
          <td>Increase income through skills and education</td>
      </tr>
      <tr>
          <td>3</td>
          <td>$100,000 – $1,000,000</td>
          <td>40%</td>
          <td>Shift focus to investing and asset allocation</td>
      </tr>
      <tr>
          <td>4</td>
          <td>$1,000,000 – $10,000,000</td>
          <td>18%</td>
          <td>Risk management, diversification, lifestyle balance</td>
      </tr>
      <tr>
          <td>5</td>
          <td>$10,000,000 – $100,000,000</td>
          <td>2%</td>
          <td>Preservation, generational planning, impact</td>
      </tr>
      <tr>
          <td>6</td>
          <td>$100,000,000+</td>
          <td>&lt; 1%</td>
          <td>Legacy, philanthropy, money as a tool for change</td>
      </tr>
  </tbody>
</table>
<h3>The 0.01% Rule
    </h3><p>A rule of thumb for evaluating discretionary spending: if a purchase costs less than 0.01% of your net worth, don&rsquo;t worry about it. The mental energy spent optimizing trivial expenses is better allocated to earning and investing decisions.</p>
<h3>The 1% Rule (Business Opportunities)
    </h3><p>When evaluating potential business investments or side ventures, if the potential upside represents less than 1% of your net worth, it&rsquo;s probably not worth the time. Focus on opportunities that can materially move your financial position.</p>
<h3>Bad Luck Cycle Model
    </h3><p>An unexpected expense hits. You can&rsquo;t afford the repair. Can&rsquo;t get to work. Lose the job. Financial tailspin. This is why emergency funds aren&rsquo;t optional at level one. At level four, the same blown tire is just an inconvenience.</p>
<hr>
<h2>💬 QUOTES
    </h2><ol>
<li>
<blockquote>
  <p><strong>&ldquo;If you look at the data, the savings rate is positively correlated with income level. The more someone earns, the more they tend to save as a percentage of their income. It&rsquo;s not just absolute saving. It goes up.&rdquo;</strong></p>
</blockquote>
<p><em>Context:</em> Maggiulli on why income, not spending, determines wealth
<em>Significance:</em> Challenges the dominant &ldquo;latte factor&rdquo; narrative in personal finance</p>
</li>
<li>
<blockquote>
  <p><strong>&ldquo;A fitness instructor is going to give different diet and exercise advice to someone who&rsquo;s morbidly obese versus a well-trained athlete. Take that analogy and apply it to your financial life.&rdquo;</strong></p>
</blockquote>
<p><em>Context:</em> Explaining why level-specific strategy matters
<em>Significance:</em> The core metaphor that makes the wealth ladder framework intuitive</p>
</li>
<li>
<blockquote>
  <p><strong>&ldquo;Even if I gave you all the future headlines during COVID and said &lsquo;when do you want to get back in?&rsquo;, you&rsquo;d still get it wrong. It&rsquo;s one of the few things in life where you can have an advantage and still not have an advantage.&rdquo;</strong></p>
</blockquote>
<p><em>Context:</em> On the impossibility of market timing
<em>Significance:</em> Illustrates the depth of the behavioral challenge in investing</p>
</li>
<li>
<blockquote>
  <p><strong>&ldquo;Having $5 million means you&rsquo;re the poorest rich person. You can&rsquo;t fly private, but you sold for $5 million. You&rsquo;re at that middle spot where it could be very frustrating.&rdquo;</strong></p>
</blockquote>
<p><em>Context:</em> Referencing a line from <em>Succession</em>
<em>Significance:</em> Captures how wealth benchmarks shift and the psychological discomfort of being between wealth levels</p>
</li>
<li>
<blockquote>
  <p><strong>&ldquo;At level one, your tire blows out driving to work and if you don&rsquo;t have money to fix it, you can&rsquo;t get to your job, you lose your job. One little event leads to a financial tailspin. At level four, it&rsquo;s just an inconvenience.&rdquo;</strong></p>
</blockquote>
<p><em>Context:</em> Explaining why financial redundancy matters most at the bottom
<em>Significance:</em> Makes the abstract concept of &ldquo;emergency fund&rdquo; concrete through a vivid scenario</p>
</li>
<li>
<blockquote>
  <p><strong>&ldquo;You don&rsquo;t want to be too illiquid. It&rsquo;s even worse than losing money in some ways because if I lost the money, I could at least count it against gains. Now it&rsquo;s trapped in a phantom vehicle that&rsquo;s puttering along.&rdquo;</strong></p>
</blockquote>
<p><em>Context:</em> On the costs of being locked into illiquid investments
<em>Significance:</em> A nuanced take from someone who has experienced the downside of liquidity constraints</p>
</li>
<li>
<blockquote>
  <p><strong>&ldquo;I changed my mind about liquidity. I value it much more today than I did when I first started. Illiquid is. I&rsquo;ve seen the other side where your money is now trapped.&rdquo;</strong></p>
</blockquote>
<p><em>Context:</em> On how experience changed his views
<em>Significance:</em> Demonstrates intellectual honesty and willingness to revise beliefs</p>
</li>
</ol>
<hr>
<h2>📋 APPLICATIONS/HABITS
    </h2><h3>For Early-Stage Wealth Builders (Levels 1–2)
    </h3><p>Build safety before strategy. Before worrying about investment returns or asset allocation, build a financial cushion. Even $5,000 to $10,000 in emergency savings transforms your relationship with risk and prevents the bad luck cascade.</p>
<p>Then invest in your income. The highest-ROI activity at this stage is increasing your earning potential. Skills, certifications, networking, side projects. Anything that raises your income trajectory matters more than optimizing your portfolio.</p>
<p>And ignore financial media&rsquo;s noise. CNBC and Bloomberg serve institutional investors and day traders. Your investment choices at this level are rounding errors compared to your career decisions.</p>
<h3>For Mid-Stage Wealth Builders (Levels 3–4)
    </h3><p>Match risk to your life, not a formula. Your appropriate risk profile depends on your industry, family situation, other liabilities, and income stability. Age alone is a terrible proxy for risk tolerance.</p>
<p>Beware lifestyle creep through housing. The biggest ticket item that scales up with wealth is housing. Once you commit to a larger mortgage, you&rsquo;re locked into the income needed to sustain it.</p>
<p>Don&rsquo;t over-optimize rebalancing. Annual rebalancing is sufficient. More frequent rebalancing means selling winners to buy laggards, which reduces returns in most market environments.</p>
<p>Accept that market timing is impossible. Maggiulli&rsquo;s thought experiment proves it: even with perfect foreknowledge of headlines, you&rsquo;d still mistime the market. Automate and move on.</p>
<h3>For High Net Worth Individuals (Levels 5+)
    </h3><p>Think about preservation first. The goal shifts from accumulation to preservation. Wealth can be lost through bad business decisions, illiquid investments, family complications, and failure to plan across generations.</p>
<p>Money becomes a tool for impact. At the highest levels, money transforms from consumption to leverage. Buying companies, funding causes, shaping industries. The question becomes what you want to build, not what you want to own.</p>
<p>Address the psychological weight. Guilt, obligation, and uncertainty about &ldquo;enough&rdquo; are real issues at these levels. Ignoring them doesn&rsquo;t make them go away.</p>
<h3>Common Pitfalls
    </h3><p>Following high-level advice at low levels. The wealthiest people are business owners. That doesn&rsquo;t mean you should start a business tomorrow if you&rsquo;re in level one with no safety net.</p>
<p>Optimizing what doesn&rsquo;t matter. Deep research into asset allocation is valuable at level three. At level one, it&rsquo;s a distraction from the thing that matters: increasing your income.</p>
<p>Underestimating liquidity needs. The allure of private investments grows with wealth. But trapped capital with no exit is one of the worst financial positions to be in.</p>
<p>Letting ego drive spending. The most expensive thing some people own is their ego. Spending to project a wealth level you haven&rsquo;t reached yet is the fastest way to stay where you are.</p>
<h3>How to Measure Progress
    </h3><p>Track your net worth crossing each threshold ($10k, $100k, $1M, $10M). Each transition signals a strategic shift, not just a number.</p>
<p>Watch your savings rate over time. As your income grows, your savings rate should stay stable or increase. If it&rsquo;s dropping as you earn more, lifestyle inflation is outpacing your wealth building.</p>
<p>Compare investment returns to total contributions. Early on, contributions dwarf returns. Over time, the ratio should flip. If it doesn&rsquo;t, your investment strategy needs attention.</p>
<p>Prioritize risk-adjusted peace of mind. The best portfolio isn&rsquo;t the one with the highest returns. It&rsquo;s the one you can stick with through a bear market without panic-selling.</p>
<hr>
<h2>📚 REFERENCES
    </h2><h3>Books
    </h3><ul>
<li><strong>The Wealth Ladder: Proven Strategies for Every Step of Your Financial Life</strong> by Nick Maggiulli (2025). The book that introduces the wealth ladder framework in full</li>
<li><strong>Just Keep Buying: Proven Ways to Save Money and Build Your Wealth</strong> by Nick Maggiulli (2022). Maggiulli&rsquo;s first book focused on investing tactics and the accumulation phase</li>
<li><strong>The Ends of the World: Supervolcanoes, Lethal Oceans, and the Search for Past Apocalypses</strong> by Peter Brannen. Recommended by Maggiulli as a perspective-shifting read on mass extinctions</li>
</ul>
<h3>Key Concepts and Frameworks
    </h3><ul>
<li><strong>Wealth Levels</strong> Six net-worth-based categories requiring different financial strategies</li>
<li><strong>0.01% Rule</strong> Spending threshold below which optimization stops mattering</li>
<li><strong>1% Rule</strong> Minimum expected return threshold for business and side-project evaluation</li>
<li><strong>Bad Luck Cycle</strong> How a single expense can cascade into catastrophe at low wealth levels</li>
</ul>
<h3>Data Sources
    </h3><ul>
<li>Cross-country savings rate analysis (US, Taiwan, and other international data)</li>
<li>US household net worth distribution statistics</li>
<li>COVID stimulus check impact on household financial stress</li>
<li>Asset ownership profiles by wealth level</li>
</ul>
<h3>Related TMFNK Content
    </h3><ul>
<li><strong><a href="https://www.tmfnk.com/see/videos/the-diary-of-a-ceo-the-savings-expert/" >The Diary of a CEO: The Savings Expert</a></strong> Another data-driven perspective on personal finance and spending behavior</li>
<li><strong><a href="https://www.tmfnk.com/see/videos/charlie-munger-saving-first-100k/" >Charlie Munger: Saving the First $100,000 Will Change Your Life</a></strong> On the importance of crossing the first major wealth threshold</li>
<li><strong><a href="https://www.tmfnk.com/see/videos/ray-dalio-explaining-principles-of-investing/" >Ray Dalio Explaining Principles of Investing</a></strong> Economic machine framework and portfolio strategy</li>
</ul>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Why You Can't Think Under Pressure: Stress Shatters the Brain's Memory-Linking System</title><link>https://www.tmfnk.com/read/articles/stress-disrupts-memory-inference-schuren-2026/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/read/articles/stress-disrupts-memory-inference-schuren-2026/</guid><description>A 2026 Science Advances study shows acute stress doesn't just impair recall of individual events. it breaks the hippocampus's ability to link related experiences, preventing inference. The mechanism: reduced reactivation and increased pattern differentiation.</description><content:encoded><![CDATA[
<p><em>Source: <a href="https://www.science.org/doi/10.1126/sciadv.aea5496" target="_blank" rel="noopener">Science Advances</a> | Schüren et al., Vol 12, Issue 21, May 22, 2026</em></p>
<hr>
<p>You have a memory of your friend&rsquo;s new light blue Vespa. Later, you see the same scooter parked outside the university library. Without anyone telling you, you infer: your friend is probably studying inside. This is inference, the brain&rsquo;s ability to connect related experiences and extract new knowledge that was never directly observed. It is one of the most powerful features of human memory. And it breaks under stress.</p>
<h2>📝 ARTICLE INFORMATION
    </h2><ul>
<li><strong>Title</strong>: Stress disrupts hippocampal integration of overlapping events and memory inference in humans</li>
<li><strong>Authors</strong>: Kai A. Schüren, Nicole L. Varga, Hendrik Heinbockel, Alison R. Preston, Benno Roozendaal, Lars Schwabe</li>
<li><strong>Publication</strong>: Science Advances, Vol 12, Issue 21, May 22, 2026</li>
<li><strong>URL</strong>: <a href="https://www.science.org/doi/10.1126/sciadv.aea5496" target="_blank" rel="noopener">https://www.science.org/doi/10.1126/sciadv.aea5496</a></li>
<li><strong>Data &amp; Code</strong>: <a href="http://doi.org/10.25592/uhhfdm.18245" target="_blank" rel="noopener">http://doi.org/10.25592/uhhfdm.18245</a></li>
</ul>
<h2>🎯 HOOK
    </h2><p>We all know stress makes it harder to remember things. But this study reveals something more unsettling: stress does not just weaken your memory of individual events. It prevents your brain from linking related experiences together. You can remember each event perfectly well on its own, but you just cannot connect them to draw new conclusions. The hippocampus, under stress, switches from an integrator to a separator. And that has consequences far beyond the lab.</p>
<h2>💡 ONE-SENTENCE TAKEAWAY
    </h2><p>Acute stress impairs inference by reducing hippocampal reactivation of related memories during new learning and increasing neural differentiation between overlapping events in the hippocampus. This meaning stressed brains store experiences as discrete episodes rather than connected knowledge structures.</p>
<h2>📖 SUMMARY
    </h2><p>This paper from Universität Hamburg (with co-author Alison Preston from UT Austin&rsquo;s Center for Learning and Memory) tested 121 participants across a two-day memory task combined with fMRI brain imaging and a psychosocial stress manipulation.</p>
<p>Day 1: Participants learned A–B associations; pairs of images where each pair contained an animal and either a face or a scene. For example, a cat paired with a forest.</p>
<p>Day 2: Half the participants underwent a mock job interview requiring them to defend their suitability for a hypothetical role and perform complex mental arithmetic (the stress condition). The control group gave a speech about a topic of their choice and completed simple math.</p>
<p>After the stress manipulation, all participants learned overlapping B–C associations; new pairs where the same animals from Day 1 were now paired with 3D shapes. The cat that was paired with the forest on Day 1 is now paired with a blue cube.</p>
<p>The critical test: Participants were shown the 3D shapes (C elements) and asked to select the face or scene (A element) most likely associated with each. If their brains had integrated the memories, they should connect the blue cube with the forest and the cat with the cat. But the stressed participants were unable to do this even though they never saw those two together.</p>
<p>Key findings:</p>
<ul>
<li>Direct memory was intact. Both groups remembered their A–B and B–C associations equally well. Stress did not impair the ability to remember individual events.</li>
<li>Inference was impaired. Stressed participants were significantly worse at the A–C inference task. They had trouble linking the old and new information.</li>
<li>Hippocampal reactivation was reduced. fMRI data showed that stressed participants reactivated the prior A memories less strongly during B–C learning. Lower reactivation directly correlated with worse inference performance.</li>
<li>Pattern differentiation increased. Representational similarity analysis revealed that stress increased neural dissimilarity between overlapping A and C elements in the hippocampus. The brain was representing these related experiences as separate events rather than integrating them.</li>
</ul>
<h2>🔍 INSIGHTS
    </h2><p>Core Insights:</p>
<ul>
<li>
<p>Stress does not destroy memories, it isolates them. This is the most important distinction. The participants under stress could remember everything. They just could not connect the dots. The hippocampus under stress defaults to pattern separation (storing experiences as distinct) rather than pattern integration (linking them into a connected structure).</p>
</li>
<li>
<p>Reactivation is the mechanism, not just the outcome. The study shows a direct causal chain: stress reduces hippocampal reactivation of prior related memories during new learning → reduced reactivation means less neural overlap between events → less overlap means the brain cannot infer new relationships. This is not a correlational finding. The reactivation-reinference correlation is strong and specific.</p>
</li>
<li>
<p>The stressor was realistic and brief. The mock job interview + mental math lasted minutes, not hours. This is not about chronic stress or trauma. It is about what happens in the brain during the kind of acute stress people routinely experience before exams, presentations, or legal testimony.</p>
</li>
<li>
<p>The behavioral results were dissociated. Memory for individual events was preserved. Only inference was impaired. This means standard memory tests that only measure recall of directly experienced information will miss the damage that stress does to knowledge integration.</p>
</li>
</ul>
<p>Broader Connections:</p>
<ul>
<li>
<p>This explains why insight fails under pressure. If you have ever drawn a blank during a high-stakes meeting when you knew the answer was &ldquo;right there&rdquo; on the page, this is the neural basis. The information was stored. The links were not made.</p>
</li>
<li>
<p>Educational implications are significant. Students who study under stress (cramming, exam anxiety) may retain individual facts but fail to build the connected knowledge structures that support transfer and problem-solving. The knowledge appears to be there on a fill-in-the-blank test but collapses on an open-ended one.</p>
</li>
<li>
<p>Clinical relevance for anxiety and PTSD. The study notes that inference is already impaired in anxiety disorders and psychosis. This paper suggests a specific mechanism: chronic stress may maintain the hippocampus in a separation-biased mode, preventing the integration that supports flexible cognition.</p>
</li>
<li>
<p>Legal testimony context. Eyewitnesses are often questioned under stress. This study suggests that their recall of individual events may be reliable while their ability to connect related events (inference) may not. The ability to infer what happened between observations may be compromised.</p>
</li>
</ul>
<h2>🛠️ FRAMEWORKS &amp; MODELS
    </h2><p>Experimental Design:</p>
<table>
  <thead>
      <tr>
          <th>Dimension</th>
          <th>Conditions</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Day 1 Learning</td>
          <td>A–B associations (animal + face/scene)</td>
      </tr>
      <tr>
          <td>Day 2 Stressor</td>
          <td>Mock job interview + complex mental math (stress) vs. self-chosen speech + simple math (control)</td>
      </tr>
      <tr>
          <td>Day 2 Learning</td>
          <td>B–C associations (animal + 3D shape)</td>
      </tr>
      <tr>
          <td>Test</td>
          <td>A–C inference (3D shape → face/scene selection)</td>
      </tr>
      <tr>
          <td>Neural Measure</td>
          <td>fMRI with representational similarity analysis (RSA)</td>
      </tr>
      <tr>
          <td>Sample</td>
          <td>121 adults</td>
      </tr>
  </tbody>
</table>
<p>Key Neural Findings:</p>
<table>
  <thead>
      <tr>
          <th>Measure</th>
          <th>Stress Effect</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>A–B recall</td>
          <td>No significant difference</td>
      </tr>
      <tr>
          <td>B–C recall</td>
          <td>No significant difference</td>
      </tr>
      <tr>
          <td>A–C inference</td>
          <td>Significantly impaired under stress</td>
      </tr>
      <tr>
          <td>Hippocampal reactivation of A during B–C learning</td>
          <td>Reduced under stress</td>
      </tr>
      <tr>
          <td>Neural similarity A–C in hippocampus</td>
          <td>Increased (differentiation) under stress</td>
      </tr>
  </tbody>
</table>
<p>The Integration–Differentiation Spectrum:</p>
<p>The paper positions its findings within a well-established framework in hippocampal neuroscience:</p>
<ul>
<li>Pattern integration: Overlapping neural representations allow the hippocampus to link events sharing common elements, enabling inference.</li>
<li>Pattern separation: Distinct neural representations keep events stored as separate episodes, preserving detail but preventing connection.</li>
<li>Stress biases the system toward separation. This is adaptive for preserving the accuracy of individual memories but costly for the flexible use of knowledge.</li>
</ul>
<h2>💬 QUOTES
    </h2><blockquote>
  <p><strong>Schüren et al.:</strong> &ldquo;Acute stress impairs inference by both reducing the degree to which past memories are reactivated during new learning and leading to their differentiation, rather than integration, in hippocampus.&rdquo;</p>
</blockquote>
<p><em>Context</em>: Abstract, summarizing the dual mechanism. Two independent pathways to the same outcome (less reactivation and more differentiation), both driven by stress.</p>
<blockquote>
  <p><strong>Schüren et al.:</strong> &ldquo;Lower reactivation was directly correlated with impaired A–C inference.&rdquo;</p>
</blockquote>
<p><em>Context</em>: Results, linking neural measure to behavior. The specific neural process (reactivation) that mediates inference is the one that stress suppresses.</p>
<blockquote>
  <p><strong>Schüren et al.:</strong> &ldquo;Stress increases neural dissimilarity between overlapping A and C elements in the hippocampus, indicating pattern differentiation and a representation as discrete events.&rdquo;</p>
</blockquote>
<p><em>Context</em>: Results, representational similarity analysis. The hippocampus under stress is not failing to integrate events, it is doing something different. It keeps events separate rather than merging them.</p>
<blockquote>
  <p><strong>Schüren et al.:</strong> &ldquo;Our findings demonstrate that acute stress hampers a key memory integration mechanism, with broad implications for educational, legal, and clinical settings.&rdquo;</p>
</blockquote>
<p><em>Context</em>: Discussion, broader impact. Three domains where this mechanism matters: exams, testimony, and anxiety/PTSD.</p>
<h2>⚡ APPLICATIONS
    </h2><p>For Students and Learners:</p>
<ul>
<li>Study under calm conditions when possible. Stress does not just make it harder to memorize information, it prevents you from connecting what you already know.</li>
<li>If you must study under time pressure, prioritize connecting concepts explicitly (writing summaries, teaching others) rather than relying on the hippocampus to do the integration automatically.</li>
</ul>
<p>For Educators:</p>
<ul>
<li>High-stakes timed exams may test recall but systematically underestimate students&rsquo; ability to infer and transfer knowledge.</li>
<li>Consider low-stakes retrieval practice and spaced learning environments that reduce stress during encoding.</li>
</ul>
<p>For Clinical Practice:</p>
<ul>
<li>Anxiety disorders and PTSD involve chronic stress exposure. This paper suggests a specific cognitive deficit (inference failure) that may be downstream of hippocampal stress responses.</li>
<li>Interventions that reduce stress during learning may not just improve recall; they may restore the brain&rsquo;s ability to build connected knowledge structures.</li>
</ul>
<p>For Legal and Policy Contexts:</p>
<ul>
<li>Eyewitness testimony collected under stress should be evaluated with the understanding that individual event recall may be reliable while the ability to connect related observations may not.</li>
</ul>
<p>For Anyone Who Has Ever Blanked Under Pressure:</p>
<ul>
<li>The information was there. The connections were not. Stress does not erase memory, it isolates. Knowing this might change how you prepare for the next high-stakes moment.</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>The Six Levels of Modern Wealth: Why 64% of Families Get Stuck on Rung 4</title><link>https://www.tmfnk.com/read/articles/six-levels-modern-wealth/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/read/articles/six-levels-modern-wealth/</guid><description>Nick Maggiulli's The Wealth Ladder reveals a startling data point: 64% of families with $1M-$10M stay there for 20 years. Here is what the six rungs actually look like and why the fourth one is a trap.</description><content:encoded><![CDATA[
<p>Every three years the Federal Reserve sends interviewers to thousands of American homes with a clipboard and a detailed questionnaire. How many cars do you own? How much is in your retirement accounts? What do you owe on credit cards? The answers become the Survey of Consumer Finances, the best data we have on who owns what in America.</p>
<p>The survey&rsquo;s credibility is not from some official seal. It comes from face-to-face interviews, cross-verification, and tracking the same families for up to twenty years.</p>
<p>Nick Maggiulli has been studying this data for years. By day he is COO at Ritholtz Wealth Management. By night he writes a blog called <em>Of Dollars And Data</em>. In 2025 he published his second book, <em>The Wealth Ladder</em>. It tracks American households across wealth tiers from 1984 to 2021 and maps the flow between them.</p>
<p>He found a number that drew my attention.</p>
<p><strong>Once a family enters the $1M to $10M net worth range, there is a 64% probability they will still be in that same range 20 years later.</strong></p>
<p>They did not get poorer. They did not go bankrupt. They just stopped. Parked on that rung for two decades.</p>
<p>Maggiulli calls it &ldquo;No Man&rsquo;s Land.&rdquo; I kept thinking about the space between trenches in World War I, where nothing moves and nobody crosses.</p>
<p>But 64% staying put is not entirely bad news. It means that once you climb to this level, the odds of falling back down are low. You reach a platform. You can&rsquo;t easily get in or out.</p>
<p>This article is about that platform. Why it exists. What it means if you are standing on its edge. And whether getting off it is even the right goal.</p>
<h2>What Are We Actually Counting?
    </h2><p>Before looking at the rungs, there is a question that matters more than most people realize.</p>
<p>Maggiulli measures net worth, not income.</p>
<p>That distinction matters more than it sounds like. Most online financial talk circles around income. What counts as a middle-class salary. Why people earning six figures still feel broke. The blind spot is treating the flow like it is the reservoir.</p>
<p>Income is a faucet. Turn it on and water comes out. Turn it off and it stops. A layoff, an industry collapse, a health crisis, and that faucet shuts off. Net worth is the pool. It is what you actually own after adding up everything (real estate, stocks, savings, retirement accounts, business equity) and subtracting everything you owe (mortgage, car loan, credit card debt).</p>
<p>You cannot always control when the faucet gets turned off. But the water in the pool is yours.</p>
<p>Maggiulli said something in an interview that stuck with me more than most of what is in his book: &ldquo;The poor have cars, the middle class owns homes, and the wealthy own businesses.&rdquo;</p>
<p>Cars depreciate. Homes generally hold value or keep pace with inflation. Business equity compounds and can grow exponentially. Income determines how fast you climb. Net worth determines where you can stop. Those are two completely different things.</p>
<h2>The Six Rungs
    </h2><p>Maggiulli divides American households into six categories based on net worth. Each rung is roughly ten times bigger than the one below. He admits this is crude. A family at $1.1M and a family at $9.9M are both on Rung 4 but living completely different lives. He kept it this way for one honest reason: it is easy to remember.</p>
<p>Here is the map:</p>
<ul>
<li><strong>Rung 1: &lt; $10k</strong> - about 20% of U.S. households</li>
<li><strong>Rung 2: $10k to $100k</strong> - about 20%</li>
<li><strong>Rung 3: $100k to $1M</strong> - about 40%. The American middle class lives here.</li>
<li><strong>Rung 4: $1M to $10M</strong> - about 18%. No Man&rsquo;s Land.</li>
<li><strong>Rung 5: $10M to $100M</strong> - about 1.5%</li>
<li><strong>Rung 6: &gt; $100M</strong> - about 0.5%</li>
</ul>
<p>Maggiulli also mapped freedom coordinates to each rung. He did not invent the concept but he used it well. At the end of Rung 2, you get supermarket freedom. You walk into Costco and grab the eggs you want without comparing prices. Small, but for someone who climbed out of Rung 1, it is the first real quality of life shift. At the end of Rung 3, you get restaurant freedom. You go to a nice place and order whatever sounds good without checking the price column. At the end of Rung 4, you get travel freedom. Any hotel, any upgrade, any itinerary, except private planes. That one waits until Rung 5.</p>
<p>The point of these coordinates is that they translate abstract numbers into something you can feel. You do not need to remember &ldquo;100k&rdquo; or &ldquo;1M.&rdquo; You just need to know what kind of restaurant you can walk into without looking at the prices.</p>
<h2>Rung 2: Investment Is Almost Irrelevant
    </h2><p>If you have $25k in net worth and somehow generate a 10% annualized return, you make $2,500 a year. That covers a minor car repair. You can spend a year studying stocks and tracking crypto, and it might earn you a few thousand extra. Or you can spend that same year becoming someone people will pay more for. One of these changes your income curve. The other does not.</p>
<p>Maggiulli is living proof of this strategy. He graduated in 2012 and started blogging in 2017. For the first three years he made no money from it. He just kept going, one post per week for 460 weeks straight. Blogging in 2012 was not an obvious career move. But it was a narrow, scarce skill accumulation. Every opportunity he got afterward — the book deal, the speaking, the media appearances — sits on top of those 460 weeks.</p>
<p>His advice for this rung: stop obsessing over whether your 401(k) should be in Fund A or Fund B. The difference is maybe 5% of your outcome. What actually separates people at this level is whether they develop something others will pay for.</p>
<p>For a young person on Rung 2, choosing between a money market fund and an S&amp;P 500 index fund will barely affect where they land five years from now. But becoming someone who is genuinely in demand during those five years? That decides everything.</p>
<h2>Rung 3: Just Keep Buying
    </h2><p>Once you cross $100k, investing actually matters. The base is big enough that compound interest becomes visible. A $500k portfolio generating 7% a year gives you $35k in passive income. That starts to feel real.</p>
<p>Maggiulli&rsquo;s strategy here is as simple as it gets. Invest a fixed amount every month. Do not time the market. Do not go all in on one bet. Diversify. Stick with it for 20 years.</p>
<p>About 60% of American families (Rungs 2 and 3 combined) could solve most of their financial problems with this one approach. No research reports. No macroeconomic analysis. No stock picking. Just buy and keep buying.</p>
<p>Then Maggiulli drops this: &ldquo;This strategy will get you to Rung 4. It will not get you to Rung 5.&rdquo;</p>
<p>That is the whole book in one sentence.</p>
<h2>Rung 4: The Reversal
    </h2><p>From Rung 2 through Rung 4, you do the same thing: invest more, allocate wider, let compounding do its work. It is an acceleration game.</p>
<p>On Rung 4, the logic flips from offense to defense.</p>
<p>The reason is simple. Every investment decision on Rung 4 is ten times bigger than it was on Rung 3. A 5% loss on Rung 3 costs you maybe $30k. Annoying but survivable. A 5% loss on Rung 4 costs you $300k. That is a car, a down payment, a year of living expenses.</p>
<p>But the real issue is not the size of the loss. It is whether you can recover.</p>
<p>It took you 15 to 25 years to get to Rung 4. If you take a big hit and try to climb back the same way, the time is not there anymore. You are 50 or 55. Your income growth has plateaued. You do not have another decade of runway to recoup.</p>
<p>So the strategy shifts. More diversification, even in areas you know well. More tax planning. More conservative risk exposure, even when you can technically afford the loss.</p>
<p>Conventional wisdom says wealthy people should invest aggressively because they can afford to lose. Maggiulli disagrees. He argues the opposite: the wealthier you are, the more you should take chips off the board.</p>
<p>A 25-year-old on Rung 2 who loses everything can start over. They have 30 years of working life ahead. A 50-year-old on Rung 4 does not. Every significant loss is a permanent reduction in their future quality of life. The idea that they can afford to lose does not hold up.</p>
<h2>Why Rung 4 Is Sticky
    </h2><p>Three reasons explain that 64% number.</p>
<p><strong>Time runs out.</strong> Going from $1M to $10M at a conservative 5% return takes about 23 years. Most people reach Rung 4 in their forties or fifties. Adding 23 years puts them at 70 or older. What does an extra $10M mean for a 70-year-old&rsquo;s quality of life? The math is not pessimistic. It is just math.</p>
<p><strong>The asset class chasm.</strong> Wealth on Rungs 3 and 4 lives in diversified assets: index funds, real estate, bonds, retirement accounts. These have good liquidity, predictable returns, and clear ceilings. Wealth on Rungs 5 and 6 lives in concentrated business equity. Index funds do not make billionaires. Entrepreneurship does.</p>
<p>This is the hard part. You climbed to Rung 4 by learning to diversify. To go further, you need to concentrate again. These are opposite instincts. Someone who spent 20 years learning to spread risk cannot just flip a switch and put 60% of their net worth into one company. And honestly, they should not. &ldquo;Concentrate to get rich, diversify to stay rich&rdquo; is a real tradeoff. Once you learn to spread, the path up is largely closed.</p>
<p><strong>Incentives flip.</strong> A family on Rung 4 with $5M in net worth can safely withdraw $200k a year using the 4% rule. That is higher than 84% of American working incomes. At that point, risking it all to reach Rung 5 starts looking irrational. You would be trading a guaranteed comfortable life for a high-probability failure and a low-probability win. Most people look at that trade and decide it does not add up. Stopping is not failure. It is a rational calculation.</p>
<h2>Rungs 5 and 6: Fighting Your Own Ego
    </h2><p>By this point, the thing that can take you out is not the market or the economy. It is you.</p>
<p>Maggiulli has a line in the book that hits harder every time I read it: &ldquo;The most expensive thing some people own is their ego.&rdquo;</p>
<p>An entrepreneur who reaches Rung 5 hears a voice inside saying: &ldquo;I got here because my judgment is good. If my judgment is good, why should I diversify? Why should I stop?&rdquo; The logic sounds reasonable. It ignores that getting to Rung 5 usually involves luck plus ability plus timing, and that specific combination does not repeat forever.</p>
<p>Maggiulli tells a story about a friend who ran a bootstrapped company. No VC money, no pressure to scale. The company reached Rung 5. Then he made a decision that does not come naturally to most people: he voluntarily sold some of his shares and converted them to cash.</p>
<p>He sold enough that even if his company collapsed tomorrow, the remaining cash would keep him on Rung 4 for the rest of his life.</p>
<p>Maggiulli&rsquo;s comment: &ldquo;This is how you play the game.&rdquo;</p>
<p>Selling equity reads like admitting defeat. Like you doubt your own company. Like you are afraid. So most people stay all-in. And when the next cycle turns, many of them end up back on Rung 4 or Rung 3.</p>
<h2>The 0.01% Rule
    </h2><p>Maggiulli proposes something he calls the &ldquo;0.01% rule.&rdquo; Your net worth generates roughly 0.01% per day, about 3.7% annually. That amount is what you can spend occasionally without guilt.</p>
<p>If your net worth is $1M, your daily number is $100. Next time you want a good bottle of wine at a restaurant, spend that $100 and move on. Do not run the mental calculation. Your portfolio already did the math.</p>
<p>If your net worth is $700k, your daily number is $70. Coffee and a pastry without hesitation. That $70 is the portfolio doing its job.</p>
<p>This looks like a spending rule. But it is really about something else. Traditional financial advice warns against lifestyle creep, and that advice is not wrong. The side effect is that many people, after building real wealth, become afraid to spend anything. They watch the number grow, feel guilty every time it shrinks, and wake up at 70 realizing they spent forty years stressed about money they never used.</p>
<p>The 0.01% rule gives those people permission. You are allowed to spend. You are allowed to enjoy life at your level. It is not about being wasteful. It is about aligning your consumption to your coordinates.</p>
<h2>Where The Stuck Families Diverge
    </h2><p>Maggiulli compared two groups of Rung 3 families: those who advanced to Rung 4 within 20 years and those who stayed stuck.</p>
<p>The income gap was obvious. Advancers earned more. But something else showed up. The spending levels of the two groups were almost identical.</p>
<p>The stuck group, despite earning significantly less, was consuming at nearly the same level as the advancers.</p>
<p>Where was the difference? Housing.</p>
<p>Many families in the stuck group bought more house than their income could support. A bigger home in a better neighborhood that squeezed cash flow and locked down net worth growth. In America, this is &ldquo;keeping up with the Joneses.&rdquo; The math is brutal. The monthly payment goes mostly to interest, not principal. That money is not building wealth. It is paying the bank for the privilege of living in a more expensive zip code.</p>
<p>Maggiulli&rsquo;s rule: &ldquo;Revenue growth minus spending growth is what builds wealth.&rdquo; Not &ldquo;spend as little as possible.&rdquo; Just keep the spread positive. Make sure income consistently outpaces expenses. A lot of people get this backward. Their income goes up 20% and their lifestyle goes up 30%. Then income goes up again and lifestyle goes up 50%. They stay in a permanent state of not having enough, even as their absolute income rises.</p>
<h2>Is Climbing the Goal?
    </h2><p>At this point a normal article would give you a 5 step plan for hitting Rung 5. I am not going to do that.</p>
<p>Maggiulli said something in his interview that stays with me. The host asked him: &ldquo;You have enough money that you do not need to work. Why are you still writing books and blogging?&rdquo;</p>
<p>His answer: &ldquo;If I only considered my own expenses, I could have stopped a long time ago. I keep working because I am paying for future unknowns. Potential education for my children. My parents&rsquo; future retirement needs. Medical needs for my sister. Unexpected large events.&rdquo;</p>
<p>Then he said: &ldquo;I am no longer optimizing just for myself.&rdquo;</p>
<p>Most FIRE content (Financial Independence, Retire Early) skips this part. All those calculators assume you know your future expenses. You do not. You do not know when a parent will get sick. You do not know if your child will need long-term medical care. You do not know what accident or crisis will show up. Mature financial planning stops asking &ldquo;How much do I want?&rdquo; and starts asking &ldquo;Who might I need to cover, and for what?&rdquo;</p>
<p>Maggiulli added one more thing near the end. If his net worth were ten times higher, his life would not get better. It might get worse.</p>
<p>&ldquo;At my current level, if I meet someone new, I do not assume they want something from me. If I were ten times wealthier, I would wonder about every new relationship. I would question every kindness.&rdquo;</p>
<p>He said he does not remember where he heard it, but he has never forgotten this line: &ldquo;The ideal level of wealth is one where you can book the best table at a restaurant without anyone recognizing you.&rdquo;</p>
<p>The data says 64% of people stop on Rung 4. The real question is not how to escape. It is whether stopping there is something that happened to you or something you chose.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Set Up LEANN for Private Local RAG on macOS</title><link>https://www.tmfnk.com/use/tutorials/leann-local-rag-on-macos/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/tutorials/leann-local-rag-on-macos/</guid><description>How to get yichuan-w/LEANN running on macOS in 5 minutes. Zero cloud, zero API keys, just your documents and a terminal. LEANN is a vector database for RAG that does everything on your machine. No cloud, no API keys, none of your documents leaving your laptop. It hit 11.8k stars on GitHub and its MLsys2026 paper claims 97% storage savings through graph-based selective recomputation. That got my attention. It indexes 30+ file types, runs on CPU, and plugs into Claude Code through MCP. What You …</description><content:encoded><![CDATA[<p>How to get yichuan-w/LEANN running on macOS in 5 minutes. Zero cloud, zero API keys, just your documents and a terminal.</p>


<hr>
<p>LEANN is a vector database for RAG that does everything on your machine. No cloud, no API keys, none of your documents leaving your laptop. It hit 11.8k stars on GitHub and its MLsys2026 paper claims 97% storage savings through graph-based selective recomputation. That got my attention.</p>
<p>It indexes 30+ file types, runs on CPU, and plugs into Claude Code through MCP.</p>
<h2>What You Need
    </h2><ul>
<li>macOS (any recent version, Intel or Apple Silicon)</li>
<li>10 minutes</li>
<li>Terminal access</li>
</ul>
<h3>Step 1: Install Prerequisites
    </h3><p>If you havent already, install Xcode Command Line Tools for git and the C++ build chain:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">xcode-select --install</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Then install <code>uv</code> (the Python package manager). The fastest way:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">curl -LsSf https://astral.sh/uv/install.sh <span class="p">|</span> sh</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Restart your terminal or source your shell config afterward.</p>
<h3>Step 2: Install LEANN
    </h3><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">uv tool install leann-core --with leann</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>This installs the <code>leann</code> CLI globally. Verify it worked:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">leann --help</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>You should see available subcommands for building indexes, searching, and managing projects.</p>
<h3>Step 3: Index Your First Project
    </h3><p>Navigate to any codebase or document folder and run:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">leann build my-first-index --docs <span class="k">$(</span>git ls-files<span class="k">)</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>LEANN scans your files, generates embeddings, and stores the index locally in a <code>.leann/</code> directory. The first build takes a couple minutes as it downloads a sentence-transformer model.</p>
<p>If youre not in a git repo, you can pass paths directly:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">leann build my-notes --docs ./notes/ ./documents/ --embedding-mode sentence-transformers --embedding-model all-MiniLM-L6-v2</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<h3>Step 4: Query Your Index
    </h3><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">leann query my-first-index <span class="s2">&#34;your question here&#34;</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>LEANN returns the most semantically relevant documents or code snippets. No internet required.</p>
<h3>Step 5 (Optional): Wire It Into Claude Code
    </h3><p>The MCP integration is what makes this useful. LEANN exposes an MCP server Claude Code can call right from your chat:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">claude mcp add --scope user leann-server -- leann_mcp</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Now when you run <code>claude</code> in that project, it can search your indexed codebase. Try asking it something like &ldquo;find the authentication logic&rdquo; or &ldquo;show me how the API client is initialized&rdquo;.</p>
<p>List available indexes from inside Claude Code with:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><pre><code>leann_list</code></pre></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>And search with:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><pre><code>leann_search</code></pre></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<h3>Pro Tips
    </h3><ul>
<li>Add <code>--no-recompute</code> to your build command to materialize all tensors on disk instead of recomputing. Faster queries, more disk usage.</li>
<li>Use <code>--backend hnsw</code> for approximate nearest neighbor search on large indexes.</li>
<li>Indexes live in <code>.leann/</code> per project and a global registry at <code>~/.leann/projects.json</code>.</li>
<li>To update an index after changing files, just run <code>leann build</code> again with the same name.</li>
</ul>
<h3>Cleanup
    </h3><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">claude mcp remove leann-server
</span></span><span class="line"><span class="cl">uv tool uninstall leann-core</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<hr>
<p>If you want your RAG completely offline with no data leaving your machine, LEANN is the simplest path I have found. No Docker, no GPU, no cloud credits.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Mini Micro: A Neo-Retro Fantasy Computer That Runs in Your Browser</title><link>https://www.tmfnk.com/enjoy/games/mini-micro/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/enjoy/games/mini-micro/</guid><description>Mini Micro is a free, open fantasy computer with a 960x640 display, sprite graphics, stereo sound, and the MiniScript language. Boot it in your browser or download it for macOS, Windows, or Linux.</description><content:encoded><![CDATA[
<p>🎮 <strong><a href="https://miniscript.org/MiniMicro/" target="_blank" rel="noopener">Play Mini Micro</a></strong> (browser, free) · <a href="https://miniscript.org/MiniMicro/#download" target="_blank" rel="noopener">Download</a> · <a href="https://itch.io/games/tag-minimicro" target="_blank" rel="noopener">itch.io</a> · <a href="https://github.com/JoeStrout/miniscript" target="_blank" rel="noopener">GitHub</a></p>
<hr>
<p>Mini Micro is a neo-retro fantasy computer. It is not a game. It is a place where games are born. Boot it up in your browser and you get a virtual machine with a 960x640 color display, sprite and tile graphics, stereo sound, and a blinking cursor waiting for input. Type a command and something happens.</p>
<p>It was built by Joe Strout, the creator of <a href="https://miniscript.org/" target="_blank" rel="noopener">MiniScript</a>. MiniScript is the language that drives everything on Mini Micro, from the shell to the games. It is designed to be learnable. A kid can open it and draw a circle on screen within minutes. Professional developers use it to prototype and ship complete games on itch.io.</p>
<h2>Specs
    </h2><p>Mini Micro emulates a retro computer that never existed:</p>
<ul>
<li><strong>Display</strong> - 960x640, full 32-bit color</li>
<li><strong>Graphics</strong> - Pixel, sprite, and tile rendering</li>
<li><strong>Text</strong> - 68x26 character grid</li>
<li><strong>Sound</strong> - Synthesized and digitized stereo audio</li>
<li><strong>Input</strong> - Keyboard, mouse, and game controller support</li>
<li><strong>Shell</strong> - Interactive REPL with a built-in code editor</li>
<li><strong>Language</strong> - MiniScript, a clean modern language inspired by Lua and Python</li>
</ul>
<p>The desktop version runs as a native app. The browser version uses WebGL and WebAssembly.</p>
<h2>What You Can Do With It
    </h2><p>You can boot Mini Micro and immediately start typing MiniScript commands at the REPL. Draw a circle. Play a note. Load a sprite. The machine comes with built-in demos you can run right away:</p>
<ul>
<li><strong>Asteroids</strong> - A tribute to the Atari classic</li>
<li><strong>Breakout</strong> - Block-breaking with a twist</li>
<li><strong>Flappy Bat</strong> - Obstacle avoidance</li>
<li><strong>Platformer Demo</strong> - A Mario-style engine you can build on</li>
<li><strong>Wumpus Trap</strong> - Hunt the Wumpus</li>
<li><strong>Mochi Bounce</strong> - An endless jumper</li>
<li><strong>Tower Defense</strong> - Balloon-popping strategy</li>
<li><strong>FatBits</strong> - A sprite editor</li>
<li><strong>Drum Machine</strong> - Click the grid and lay down a beat</li>
<li><strong>Globe</strong> - 3D wireframe globe rendering</li>
<li><strong>Greedy Gargoyle</strong> - A text adventure</li>
</ul>
<p>Each demo loads in one click from the Programs tab. They are written in MiniScript and you can open the source, modify it, and run your version.</p>
<h2>The Community
    </h2><p>The Mini Micro community publishes games on itch.io with the tag. There are over 60 games listed on the site ranging from puzzle games like In My Bubble and Sub-Optimal to full action titles like Skyguard (pseudo-3D flight combat), Mini Macro (a 2.5D racing game), and Kip and the Caves of Lava (a polished Mario-style platformer). There is a tower defense game, a survival horror game, a RTS about alien organisms, and a complete BASIC interpreter written in MiniScript.</p>
<p>The community skews friendly and encouraging in the way old hobbyist computing groups did. People share code. They write tutorials. They port classic games.</p>
<h2>What Makes It Interesting
    </h2><p>Mini Micro sits in a space that most modern platforms ignore. It is not trying to be a game engine. It is not trying to be an emulator. It is a self-contained little computer that happens to be really good at making games, and it makes the entire process visible.</p>
<p>You are never more than a Control-C away from the source. Every running program can be interrupted and inspected. Variables, call stack, the works. That transparency is something modern development environments abstract away, and losing it changed how people learn to code.</p>
<p>There are books written for Mini Micro. Introduction to Computer Programming is a 54-page color guide aimed at absolute beginners. Learn to Code in 30 Days is a full 386-page curriculum. Both use Mini Micro as the teaching environment.</p>
<h2>How to Try It
    </h2><p>Open <a href="https://miniscript.org/MiniMicro/" target="_blank" rel="noopener">miniscript.org/MiniMicro/</a> in any modern browser. Click Play Now and the WebGL build boots into the Mini Micro desktop. You can start typing commands immediately or pick a demo from the Games/Apps tab.</p>
<p>If you want the full experience, download the native version for macOS, Windows, or Linux. The desktop build has better performance and is self-contained. It also supports downloadable DLC games like Retro Robots and World Conquest.</p>
<p>The whole thing is free. No ads, no accounts, no paid tiers.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Karpathy's AI Coding Guidelines: Install the CLAUDE.md That Developers Use</title><link>https://www.tmfnk.com/use/tutorials/karpathy-ai-coding-guidelines/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/tutorials/karpathy-ai-coding-guidelines/</guid><description>A practical guide to installing and using the four-principle CLAUDE.md template derived from Andrej Karpathy's observations on LLM coding pitfalls. Works with Claude Code, Cursor, and OpenCode.</description><content:encoded><![CDATA[

<h2>Karpathy&rsquo;s AI Coding Guidelines: Set Up Your Agent
    </h2><p>Andrej Karpathy posted a thread about what AI coding agents get wrong. Someone turned it into a CLAUDE.md template. 158k stars later, it is the most adopted set of guidelines for keeping AI agents in line.</p>
<p>Four principles. Drop them into your project and your coding agent starts acting like it has a senior engineer watching. Here is how to set it up on Claude Code, Cursor, and OpenCode.</p>
<h2>The Four Principles
    </h2><p>Karpathy noticed that LLMs share specific failure patterns: they make assumptions without checking, overcomplicate code, change things they should not, and drift without clear success criteria. This CLAUDE.md directly addresses each one.</p>
<p><strong>Think Before Coding.</strong> Models pick an interpretation and run with it. They do not surface confusion or present tradeoffs. This principle forces them to state assumptions, ask when uncertain, and push back when a simpler approach exists.</p>
<p><strong>Simplicity First.</strong> LLMs gravitate toward bloat. They build abstractions for single-use code, add flexibility nobody asked for, and turn 100 lines into 1000. This rule kills that: no features beyond scope, no speculative architecture, no error handling for impossible cases. If a senior engineer would call it overcomplicated, simplify.</p>
<p><strong>Surgical Changes.</strong> The worst failure mode. Models change comments they do not understand, reformat code they were not asked to touch, and refactor things that work. This rule says touch only what the task requires and clean up only your own mess. Every changed line must trace to the request.</p>
<p><strong>Goal-Driven Execution.</strong> Karpathy noted that LLMs excel at looping toward specific goals but flounder with vague instructions. Instead of &ldquo;add validation,&rdquo; write &ldquo;write tests for invalid inputs, then make them pass.&rdquo; Clear success criteria let the agent work independently.</p>
<h2>Installation
    </h2><h3>Claude Code Plugin (Recommended)
    </h3><p>From inside Claude Code, add the marketplace then install:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><pre><code>/plugin marketplace add forrestchang/andrej-karpathy-skills
/plugin install andrej-karpathy-skills@karpathy-skills</code></pre></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>This makes the guidelines available across all projects without manually copying files.</p>
<h3>CLAUDE.md (Per-Project)
    </h3><p>For a new project:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>To append to an existing CLAUDE.md:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;&#34;</span> &gt;&gt; CLAUDE.md
</span></span><span class="line"><span class="cl">curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md &gt;&gt; CLAUDE.md</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<h3>Cursor
    </h3><p>The repo ships with a Cursor project rule at <code>.cursor/rules/karpathy-guidelines.mdc</code>. Copy it into your project&rsquo;s <code>.cursor/rules/</code> directory and Cursor will apply the same guidelines automatically.</p>
<h3>OpenCode / AGENTS.md
    </h3><p>OpenCode uses AGENTS.md and CLAUDE.md for agent instructions. Append the four principles into your <code>AGENTS.md</code> in the behavioral guidelines section:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -s https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md &gt;&gt; AGENTS.md</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Or copy the relevant sections into your existing <code>~/.config/opencode/AGENTS.md</code> for system-wide application.</p>
<h2>What Changes
    </h2><p>Without this file, the agent picks one interpretation silently, builds a 200-line solution with three abstractions, reformats two unrelated files, and delivers code that almost works but misses the edge case you mentioned twice.</p>
<p>With it, the agent says &ldquo;I see two possible approaches here, which one?&rdquo; writes 50 lines, touches only the files you asked about, and runs the test you told it to write.</p>
<p>Give it a week and this becomes muscle memory. Clarifying questions start appearing on their own. PRs shrink. The agent stops &ldquo;improving&rdquo; things that were fine.</p>
<h2>How to Know It Is Working
    </h2><p>If the agent starts asking questions before writing code, making smaller changes, and flagging ambiguity instead of guessing, it is working. If it still charges ahead like before, the CLAUDE.md probably is not loaded. Check the file exists at your project root.</p>
<h2>Customization
    </h2><p>The template is designed to merge with project-specific rules. Add your own sections below the four principles:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><pre><code>## Project-Specific Guidelines
- Use TypeScript strict mode
- All API endpoints must have tests
- Follow error handling patterns in src/utils/errors.ts</code></pre></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>The project-specific section gets appended after the Karpathy principles so both apply.</p>
<h2>Tradeoff
    </h2><p>The whole point is caution over speed. For a typo fix or an obvious one-liner, you do not need the full process. The guidelines say so themselves: use judgment on simple changes, run the full thing on complex work.</p>
<h2>Links
    </h2><ul>
<li><strong><a href="https://github.com/multica-ai/andrej-karpathy-skills" target="_blank" rel="noopener">GitHub Repo</a></strong>: multica-ai/andrej-karpathy-skills (158k stars)</li>
<li><strong><a href="https://x.com/karpathy/status/2015883857489522876" target="_blank" rel="noopener">Andrej Karpathy on X</a></strong>: The original post that inspired this</li>
<li><strong><a href="https://github.com/multica-ai/andrej-karpathy-skills/blob/main/EXAMPLES.md" target="_blank" rel="noopener">EXAMPLES.md</a></strong>: Before/after examples in the repo</li>
<li><strong><a href="https://www.tmfnk.com/use/tutorials/stop-wasting-tokens-ai-coding/" >Stop Wasting Tokens</a></strong>: Related TMFNK guide on AI coding token optimization</li>
<li><strong><a href="https://github.com/multica-ai/multica" target="_blank" rel="noopener">Multica</a></strong>: The maintainer&rsquo;s platform for running coding agents with reusable skills</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Is Grep All You Need? How Agent Harnesses Reshape Agentic Search</title><link>https://www.tmfnk.com/read/articles/is-grep-all-you-need/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/read/articles/is-grep-all-you-need/</guid><description>A PwC research paper comparing grep vs vector retrieval across custom and provider-native agent harnesses (Claude Code, Codex, Gemini CLI). Key finding: grep generally wins on accuracy, but the harness matters as much as the retriever.</description><content:encoded><![CDATA[
<h2>📝 ARTICLE INFORMATION
    </h2><ul>
<li><strong>Title</strong>: Is Grep All You Need? How Agent Harnesses Reshape Agentic Search</li>
<li><strong>Authors</strong>: Sahil Sen, Akhil Kasturi, Elias Lumer, Anmol Gulati, Vamse Kumar Subbiah (PwC)</li>
<li><strong>Publication</strong>: arXiv preprint, May 2026</li>
<li><strong>URL</strong>: <a href="https://arxiv.org/abs/2605.15184" target="_blank" rel="noopener">https://arxiv.org/abs/2605.15184</a></li>
</ul>
<h3>🎯 HOOK
    </h3><p>Everybody building RAG systems defaults to vector search. This paper ran a controlled experiment comparing grep against vector retrieval across four different agent harnesses and found that grep consistently wins on accuracy. But the more surprising result: switching harnesses (Chronos vs. Claude Code vs. Codex vs. Gemini CLI) shifted accuracy by roughly the same margin as switching retrievers. The agent scaffold is not passive infrastructure.</p>
<h3>💡 ONE-SENTENCE TAKEAWAY
    </h3><p>Lexical search (grep) consistently outperforms vector retrieval on long-memory QA when results are delivered inline, but the choice of agent harness and tool-calling architecture (inline vs. file-based) shifts accuracy as much as the retrieval strategy itself.</p>
<h3>📖 SUMMARY
    </h3><p>This paper from PwC systematically compares grep and vector retrieval across two experiments using a 116-question subset of the LongMemEval benchmark.</p>
<p><strong>Experiment 1</strong> tests four agent harnesses (Chronos, Claude Code, Codex, Gemini CLI) with five LLMs (Claude Opus 4.6, Claude Haiku 4.5, GPT-5.4, Gemini 3.1 Pro, Gemini 3.1 Flash-Lite) under both inline and file-based tool delivery. The results: inline grep beats inline vector on every single harness-model pair. The widest gap is Chronos + Gemini Flash-Lite (86.2% vs 62.9%). The narrowest is Claude Code + Claude Opus 4.6 (76.7% vs 75.0%). But the harness matters enormously: Claude Opus 4.6 hits 93.1% under Chronos but only 76.7% under Claude Code.</p>
<p><strong>Experiment 2</strong> tests how both retrieval methods degrade as irrelevant noise is mixed in. Grep holds up better across the board, and both methods show surprisingly graceful degradation as more distractor sessions are added.</p>
<p>The paper&rsquo;s central contribution is showing that &ldquo;retrieval&rdquo; in agent systems is really retrieval-plus-orchestration. The harness shapes system prompts, tool descriptions, context construction, and termination criteria. Reporting BM25 vs. ANN in a static pipeline misses the variance introduced by agent scaffolding.</p>
<h3>🔍 INSIGHTS
    </h3><p><strong>Core Insights:</strong></p>
<ul>
<li>
<p><strong>Grep is the default winner on literal-recall tasks.</strong> LongMemEval answers are often specific facts, dates, and preferences. Grep surfaces exact matches without an embedding bottleneck. Vector search can drown in semantically &ldquo;near&rdquo; distractors.</p>
</li>
<li>
<p><strong>Harness choice shifts accuracy as much as retriever choice.</strong> Moving Claude Opus 4.6 between Chronos and Claude Code changes accuracy from 93.1% to 76.7%. That 16.4-point gap is comparable to the gap between grep and vector within a single harness. The scaffold is not neutral infrastructure.</p>
</li>
<li>
<p><strong>File-based delivery reshuffles the comparison entirely.</strong> When results are written to files instead of injected inline, vector search beats grep on 5 out of 10 harness-model pairs. But accuracy can collapse independently of retrieval quality when the read-integrate-retry cycle breaks, as happened with Codex + GPT-5.4 (93.1% inline grep to 55.2% programmatic grep).</p>
</li>
<li>
<p><strong>Weaker models depend more on retrieval mode.</strong> Claude Haiku 4.5 shows the largest inline grep-vector gaps (55.2% vs 44.0% on Claude Code). Stronger models are more robust to retriever choice.</p>
</li>
</ul>
<p><strong>Broader Connections:</strong></p>
<ul>
<li>
<p><strong>The &ldquo;Lost in the Middle&rdquo; problem applies to tool results too.</strong> Inline delivery competes with conversation history for context window space. File-based delivery decouples result size from context pressure but adds a multi-step workflow the agent must execute reliably.</p>
</li>
<li>
<p><strong>Chronos&rsquo;s category-conditioned prompting may explain its advantage.</strong> Custom harnesses can optimize system prompts per question type (temporal reasoning vs preference recall). Provider CLIs use generic prompts. That domain-specific adaptation is a real advantage.</p>
</li>
<li>
<p><strong>This mirrors the BEIR benchmark findings.</strong> Thakur et al. (2021) showed BM25 remains a competitive baseline against dense retrieval in zero-shot settings. The same pattern holds inside agent loops.</p>
</li>
<li>
<p><strong>For practitioners, the implication is practical:</strong> if your task rewards literal span recovery, grep may be all you need. But measure both your harness and your retriever, because switching costs are real.</p>
</li>
</ul>
<h3>🛠️ FRAMEWORKS &amp; MODELS
    </h3><p><strong>Experimental Design:</strong></p>
<table>
  <thead>
      <tr>
          <th>Dimension</th>
          <th>Conditions</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Retrieval Strategy</td>
          <td>grep-only, vector-only</td>
      </tr>
      <tr>
          <td>Agent Harnesses</td>
          <td>Chronos (custom), Claude Code, Codex, Gemini CLI</td>
      </tr>
      <tr>
          <td>Tool Delivery</td>
          <td>inline (stdout), programmatic (file-based)</td>
      </tr>
      <tr>
          <td>Models</td>
          <td>Claude Opus 4.6, Claude Haiku 4.5, GPT-5.4, Gemini 3.1 Pro, Gemini 3.1 Flash-Lite</td>
      </tr>
      <tr>
          <td>Benchmark</td>
          <td>LongMemEval-S (116 questions, 6 categories)</td>
      </tr>
      <tr>
          <td>Evaluation</td>
          <td>GPT-4o grader with category-conditioned rubrics</td>
      </tr>
  </tbody>
</table>
<p><strong>Experiment 1: Key Results (accuracy %):</strong></p>
<table>
  <thead>
      <tr>
          <th>Model</th>
          <th>Harness</th>
          <th>Grep Inline</th>
          <th>Vector Inline</th>
          <th>Grep File</th>
          <th>Vector File</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Claude Opus 4.6</td>
          <td>Chronos</td>
          <td><strong>93.1</strong></td>
          <td>83.6</td>
          <td>80.2</td>
          <td>81.9</td>
      </tr>
      <tr>
          <td>Claude Opus 4.6</td>
          <td>Claude Code</td>
          <td>76.7</td>
          <td>75.0</td>
          <td>68.1</td>
          <td><strong>79.3</strong></td>
      </tr>
      <tr>
          <td>GPT-5.4</td>
          <td>Chronos</td>
          <td><strong>89.7</strong></td>
          <td>81.9</td>
          <td>87.1</td>
          <td>75.0</td>
      </tr>
      <tr>
          <td>GPT-5.4</td>
          <td>Codex CLI</td>
          <td><strong>93.1</strong></td>
          <td>75.9</td>
          <td>55.2</td>
          <td>67.2</td>
      </tr>
      <tr>
          <td>Gemini 3.1 Pro</td>
          <td>Chronos</td>
          <td><strong>91.4</strong></td>
          <td>82.8</td>
          <td>79.3</td>
          <td>76.7</td>
      </tr>
      <tr>
          <td>Gemini 3.1 Flash-Lite</td>
          <td>Chronos</td>
          <td><strong>86.2</strong></td>
          <td>62.9</td>
          <td>85.3</td>
          <td>72.4</td>
      </tr>
  </tbody>
</table>
<p><strong>Experiment 2: Context Scaling (noise robustness):</strong></p>
<p>Grep-only and vector-only accuracy across session limits (s5, s10, s20, s30, full). Grep degrades more gracefully than vector as distractor sessions accumulate, though both methods show moderate robustness.</p>
<h3>💬 QUOTES
    </h3><ol>
<li>
<p><strong>&ldquo;Across Chronos and the provider CLIs, grep generally yields higher accuracy than vector retrieval in our comparisons in experiment 1; at the same time, overall scores still depend strongly on which harness and tool-calling style is used, even when the underlying conversation data are the same.&rdquo;</strong></p>
<p><em>Context</em>: Abstract summarizing the core finding.
<em>Significance</em>: The sentence that should give every RAG practitioner pause.</p>
</li>
<li>
<p><strong>&ldquo;Retrieval mode is not measured in isolation: the harness shapes the system prompt, tool descriptions, and how hits are rendered back into the chat, all of which influence how the model schedules queries and decides when to stop.&rdquo;</strong></p>
<p><em>Context</em>: Section 4.1.4 discussion.
<em>Significance</em>: Explains why harness effects are as large as retriever effects.</p>
</li>
<li>
<p><strong>&ldquo;Programmatic delivery changes the task from &lsquo;read the tool message&rsquo; to &rsquo;locate, open, and integrate an artifact.&rsquo; When that second stage is brittle, accuracy can collapse independently of retrieval quality.&rdquo;</strong></p>
<p><em>Context</em>: Section 4.1.4 on file-based tool delivery.
<em>Significance</em>: A caution for anyone designing file-based agent workflows.</p>
</li>
<li>
<p><strong>&ldquo;Lexical and dense search optimize different failure modes in an agent loop, not only in a ranking metric.&rdquo;</strong></p>
<p><em>Context</em>: Section 4.1.4.
<em>Significance</em>: Grep punishes vocabulary mismatch. Vector punishes semantic distractors. Neither is universally better; the task determines which failure mode matters.</p>
</li>
</ol>
<h3>⚡ APPLICATIONS
    </h3><p><strong>For RAG System Designers:</strong></p>
<ul>
<li>Default to grep on tasks where answers are literal spans (names, dates, IDs, preferences). Add vector search as a fallback for paraphrase-heavy queries.</li>
<li>If you use file-based tool delivery, test the full read-integrate loop separately from retrieval quality. The paper shows accuracy can collapse at the workflow level even when retrieval is fine.</li>
<li>Profile your harness before your retriever. Changing from Chronos to Claude Code shifts accuracy by 16 points. That is the same magnitude as swapping retrievers.</li>
</ul>
<p><strong>For Benchmark Designers:</strong></p>
<ul>
<li>Report both retrieval strategy and harness architecture in evaluation results. Accuracy without the harness context is missing a confounding variable.</li>
<li>Include an inline vs. programmatic tool delivery dimension. The interaction with retrieval strategy is real and measurable.</li>
</ul>
<p><strong>For Developers Building Agent Systems:</strong></p>
<ul>
<li>Consider Chronos-style category-conditioned prompting if you control the harness. The paper&rsquo;s custom harness consistently beat provider CLIs for the same backbone.</li>
<li>Be suspicious of &ldquo;default to vector&rdquo; recommendations. They assume a fixed pipeline that does not match how agents actually use retrieval tools.</li>
<li>Simple retrieval with a well-tuned harness outperforms sophisticated retrieval with a generic scaffold.</li>
</ul>
<h3>📚 REFERENCES
    </h3><p><strong>Primary Source:</strong></p>
<ul>
<li>Sen, S., Kasturi, A., Lumer, E., Gulati, A., &amp; Subbiah, V. K. (2026). &ldquo;Is Grep All You Need? How Agent Harnesses Reshape Agentic Search.&rdquo; arXiv:2605.15184. <a href="https://arxiv.org/abs/2605.15184" target="_blank" rel="noopener">https://arxiv.org/abs/2605.15184</a></li>
</ul>
<p><strong>Key References Cited:</strong></p>
<ul>
<li>Wu et al. (2025). &ldquo;LongMemEval: Benchmarking Chat Assistants on Long-Term Interactive Memory.&rdquo;</li>
<li>Sen et al. (2026). &ldquo;Chronos: Temporal-Aware Conversational Agents with Structured Event Retrieval for Long-Term Memory.&rdquo;</li>
<li>Lewis et al. (2020). &ldquo;Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.&rdquo;</li>
<li>Gao et al. (2024). &ldquo;Retrieval-Augmented Generation for Large Language Models: A Survey.&rdquo;</li>
<li>Thakur et al. (2021). &ldquo;BEIR: A Heterogenous Benchmark for Zero-Shot Evaluation of Information Retrieval Models.&rdquo;</li>
<li>Liu et al. (2024). &ldquo;Lost in the Middle: How Language Models Use Long Contexts.&rdquo;</li>
<li>Yao et al. (2023). &ldquo;ReAct: Synergizing Reasoning and Acting in Language Models.&rdquo;</li>
<li>Packer et al. (2023). &ldquo;MemGPT: Towards LLMs as Operating Systems.&rdquo;</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Bumblebee: Perplexity's Supply-Chain Security Scanner for Developer Machines</title><link>https://www.tmfnk.com/use/tools/bumblebee/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/use/tools/bumblebee/</guid><description>A read-only endpoint scanner that inventories packages, extensions, and developer-tool metadata on macOS and Linux, then checks them against known supply-chain compromises.</description><content:encoded><![CDATA[

<h2>Bumblebee: Developer Supply-Chain Scanner
    </h2><p><strong>Bumblebee</strong> <a href="https://github.com/perplexityai/bumblebee" target="_blank" rel="noopener">https://github.com/perplexityai/bumblebee</a> is a read-only scanner from Perplexity that inventories packages, extensions, and developer-tool metadata on macOS and Linux machines. When a supply-chain advisory names a compromised package or version, Bumblebee tells you which developer machines have it on disk.</p>
<p>SBOMs answer what shipped. EDR answers what ran. Supply-chain response often needs a third view: messy local state across lockfiles, package-manager metadata, extension manifests, and MCP configs. Bumblebee turns that scattered state into structured NDJSON records and, given an exposure catalog, flags exact matches.</p>
<h3>Key Features
    </h3><ul>
<li><strong>Zero Dependencies</strong> - Single static Go binary, no runtime deps beyond Go 1.25</li>
<li><strong>Read-Only Design</strong> - Scans on-disk metadata only, never executes package managers</li>
<li><strong>Three Scan Profiles</strong> - baseline (global), project (workspaces), deep (incident response with exposure catalogs)</li>
<li><strong>Broad Coverage</strong> - npm, pnpm, Yarn, Bun, PyPI, Go modules, RubyGems, Composer, MCP configs, editor extensions, browser extensions</li>
<li><strong>Exposure Catalogs</strong> - Compare inventory against known-compromised package lists</li>
<li><strong>NDJSON Output</strong> - Structured records per package and per finding, pipeable into SIEM pipelines</li>
<li><strong>Content-Addressed IDs</strong> - Stable record IDs across runs for deduplication</li>
</ul>
<h3>What It Scans
    </h3><p>Bumblebee reads lockfiles and metadata files. It does not run <code>npm ls</code>, <code>pip show</code>, or <code>go list</code>. It covers:</p>
<table>
  <thead>
      <tr>
          <th>Ecosystem</th>
          <th>Sources</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>npm</td>
          <td><code>package-lock.json</code>, <code>pnpm-lock.yaml</code>, <code>yarn.lock</code>, <code>bun.lock</code> + <code>node_modules/**/package.json</code></td>
      </tr>
      <tr>
          <td>PyPI</td>
          <td><code>*.dist-info/METADATA</code>, <code>INSTALLER</code>, <code>direct_url.json</code>, <code>*.egg-info/PKG-INFO</code></td>
      </tr>
      <tr>
          <td>Go</td>
          <td><code>go.sum</code>, <code>go.mod</code></td>
      </tr>
      <tr>
          <td>RubyGems</td>
          <td><code>Gemfile.lock</code>, installed <code>*.gemspec</code></td>
      </tr>
      <tr>
          <td>Composer</td>
          <td><code>composer.lock</code>, <code>vendor/composer/installed.json</code></td>
      </tr>
      <tr>
          <td>MCP</td>
          <td><code>mcp.json</code>, <code>claude_desktop_config.json</code>, <code>cline_mcp_settings.json</code>, Gemini CLI settings</td>
      </tr>
      <tr>
          <td>Editor Extensions</td>
          <td>VS Code, Cursor, Windsurf, VSCodium manifests</td>
      </tr>
      <tr>
          <td>Browser Extensions</td>
          <td>Chromium <code>manifest.json</code>, Firefox <code>extensions.json</code> per profile</td>
      </tr>
  </tbody>
</table>
<h3>Get Started
    </h3><h4>Installation
    </h4><p>Requires Go 1.25+ on macOS or Linux:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install latest release</span>
</span></span><span class="line"><span class="cl">go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Or pin a specific version</span>
</span></span><span class="line"><span class="cl">go install github.com/perplexityai/bumblebee/cmd/bumblebee@v0.1.1</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>If <code>bumblebee</code> is not found after install, ensure <code>$GOBIN</code> is in your <code>$PATH</code>:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="nv">$PATH</span>:<span class="k">$(</span>go env GOPATH<span class="k">)</span>/bin</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Make it permanent:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;export PATH=$PATH:$(go env GOPATH)/bin&#39;</span> &gt;&gt; ~/.zshrc</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<h4>Smoke Test
    </h4><p>Run the built-in self-test against embedded fixtures:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">bumblebee selftest
</span></span><span class="line"><span class="cl"><span class="c1"># selftest OK (3 findings in 1ms)</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>The fixtures use deliberately fake package names and make no network calls. A non-zero exit means something is wrong with the install.</p>
<h3>Usage
    </h3><h4>Baseline Scan (Global Inventory)
    </h4><p>Scans common global package roots, language toolchains, editor/browser extensions, and MCP configs:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">bumblebee scan --profile baseline &gt; inventory.ndjson</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>This is the command to run on a schedule (cron, launchd, systemd).</p>
<h4>Project Scan
    </h4><p>Target specific development directories:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">bumblebee scan --profile project <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>  --root <span class="s2">&#34;</span><span class="nv">$HOME</span><span class="s2">/code&#34;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>  --root <span class="s2">&#34;</span><span class="nv">$HOME</span><span class="s2">/Developer&#34;</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<h4>Deep Scan (Incident Response)
    </h4><p>For on-demand checks against known compromises:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">bumblebee scan --profile deep <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>  --root <span class="s2">&#34;</span><span class="nv">$HOME</span><span class="s2">&#34;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>  --exposure-catalog ./threat_intel/ <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>  --findings-only</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Supply <code>--exposure-catalog</code> a JSON file or a directory of <code>*.json</code> catalog files. The <code>--findings-only</code> flag suppresses normal package records and shows only matches.</p>
<h4>Filter by Ecosystem
    </h4><p>Limit a run to specific package managers:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">bumblebee scan --profile baseline --ecosystem npm,pypi
</span></span><span class="line"><span class="cl">bumblebee scan --profile baseline --ecosystem go</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<h4>Preview Scan Roots
    </h4><p>See what directories Bumblebee will scan without actually scanning:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">bumblebee roots --profile baseline</span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<h3>Threat Intel Catalogs
    </h3><p>The repo ships with maintained exposure catalogs in <code>threat_intel/</code>. These are JSON files built from public threat-intelligence reporting on recent supply-chain campaigns. The format is straightforward:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;schema_version&#34;</span><span class="p">:</span> <span class="s2">&#34;0.1.0&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;entries&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="cl">      <span class="nt">&#34;id&#34;</span><span class="p">:</span> <span class="s2">&#34;advisory-2026-0042&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="nt">&#34;name&#34;</span><span class="p">:</span> <span class="s2">&#34;example-pkg 1.2.3 (compromised release)&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="nt">&#34;ecosystem&#34;</span><span class="p">:</span> <span class="s2">&#34;npm&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="nt">&#34;package&#34;</span><span class="p">:</span> <span class="s2">&#34;example-pkg&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="nt">&#34;versions&#34;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&#34;1.2.3&#34;</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">      <span class="nt">&#34;severity&#34;</span><span class="p">:</span> <span class="s2">&#34;critical&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Point <code>--exposure-catalog</code> at the <code>threat_intel/</code> directory and Bumblebee will match every inventoried package against every entry. Findings output includes the catalog ID, severity, and evidence.</p>
<h3>Output Format
    </h3><p>Records are NDJSON, one per line. Package records look like this:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;record_type&#34;</span><span class="p">:</span> <span class="s2">&#34;package&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;ecosystem&#34;</span><span class="p">:</span> <span class="s2">&#34;npm&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;package_name&#34;</span><span class="p">:</span> <span class="s2">&#34;@tanstack/query-core&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;version&#34;</span><span class="p">:</span> <span class="s2">&#34;5.59.20&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;source_type&#34;</span><span class="p">:</span> <span class="s2">&#34;pnpm-lockfile&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;confidence&#34;</span><span class="p">:</span> <span class="s2">&#34;high&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;endpoint&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;hostname&#34;</span><span class="p">:</span> <span class="s2">&#34;my-mbp&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;os&#34;</span><span class="p">:</span> <span class="s2">&#34;darwin&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;arch&#34;</span><span class="p">:</span> <span class="s2">&#34;arm64&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<p>Finding records add the exposure match details:</p>
<div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code">

<div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;record_type&#34;</span><span class="p">:</span> <span class="s2">&#34;finding&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;finding_type&#34;</span><span class="p">:</span> <span class="s2">&#34;package_exposure&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;severity&#34;</span><span class="p">:</span> <span class="s2">&#34;critical&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;catalog_id&#34;</span><span class="p">:</span> <span class="s2">&#34;advisory-2026-0042&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;package_name&#34;</span><span class="p">:</span> <span class="s2">&#34;example-pkg&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;version&#34;</span><span class="p">:</span> <span class="s2">&#34;1.2.3&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;evidence&#34;</span><span class="p">:</span> <span class="s2">&#34;exact name+version match&#34;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0">
  <button
    class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
    title="Copy code"
  >
    <div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>
<div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div>
  </button>
</div>
</div>
<h3>What I Found Running It
    </h3><p>I tested Bumblebee on a developer machine. Here is what the numbers looked like:</p>
<ul>
<li>Self-test passed with 3 findings in 1ms</li>
<li>Baseline scan found 615 package records (354 npm, 139 PyPI, 122 Go)</li>
<li>Deep scan with threat intel catalogs across 50,999 files returned 0 findings</li>
<li>All 19 test packages pass</li>
</ul>
<p>The zero findings part is good news. It means none of the scanned packages matched known-compromised versions in the current threat catalogs. Running this on your own machine once a month is a cheap way to keep that peace of mind.</p>
<h3>Platforms
    </h3><ul>
<li>🍎 <strong>macOS</strong> (Apple Silicon &amp; Intel)</li>
<li>🐧 <strong>Linux</strong></li>
</ul>
<p>🔗 <strong>GitHub:</strong> <a href="https://github.com/perplexityai/bumblebee" target="_blank" rel="noopener">github.com/perplexityai/bumblebee</a></p>
<h3>Why This Tool Rocks
    </h3><ul>
<li>Fills a gap between SBOM and EDR for supply-chain incident response</li>
<li>Reads messy local state that existing tools overlook (browser extensions, MCP configs)</li>
<li>Ships with actual threat intel catalogs, not just a framework</li>
<li>Stable record IDs mean you can deduplicate across scan runs</li>
<li>Single static binary, no runtime dependencies</li>
<li>Apache 2.0 licensed, written in Go with zero non-stdlib dependencies</li>
</ul>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Stanford CS153 Frontier Systems | Jensen Huang from NVIDIA on the Compute Behind Intelligence</title><link>https://www.tmfnk.com/see/videos/stanford-cs153-jensen-huang/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/see/videos/stanford-cs153-jensen-huang/</guid><description>Jensen Huang argues computing is being reinvented for the first time in 64 years, walks through the architecture progression from Hopper to Feynman, and predicts 1000x energy demand.</description><content:encoded><![CDATA[


<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/tsQB0n0YV3k?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p><strong>Stanford CS153: Frontier Systems, Spring 2026</strong>
<strong>Guest Lecturer:</strong> Jensen Huang, CEO of NVIDIA
<strong>Instructors:</strong> Anjney Midha (AMP PBC) &amp; Mike Abbott (ex-Apple/Twitter/KP)</p>
<hr>
<p>I&rsquo;m not sure there&rsquo;s a better window into where NVIDIA is heading than this 65-minute lecture. CS153 has become the most oversubscribed class at Stanford with 500 students, a waitlist, and a speaker roster that reads like a Davitz dinner table. Jensen showed up and basically gave a masterclass on why computing as we know it is ending.</p>
<p>His opening claim stopped me: computing is being reinvented for the first time in 64 years. Since the IBM System/360, we&rsquo;ve been running prerecorded instructions. Software was a frozen set of commands. Jensen&rsquo;s argument is that we&rsquo;ve flipped to real-time generation, models don&rsquo;t execute code so much as generate answers on the fly, and the entire hardware stack has to be rebuilt around that reality.</p>
<p>The numbers are obscene. NVIDIA&rsquo;s co-design across chips, compilers, switches, and networking delivered a million-fold speedup over the last decade. Moore&rsquo;s Law over that same period would&rsquo;ve given you 100x. Jensen&rsquo;s point isn&rsquo;t that Moore&rsquo;s Law is dead, it&rsquo;s that it was never enough for this problem.</p>
<hr>
<h2>The Architecture Story
    </h2><p>Jensen walked through NVIDIA&rsquo;s silicon roadmap in a way I haven&rsquo;t heard him do before. Each generation maps to a specific phase of the AI lifecycle:</p>
<p><strong>Hopper</strong>: built for pre-training. Get the weights right.</p>
<p><strong>Grace Blackwell NVLink72</strong>: designed for inference and decode. The insight here is that token generation is memory-bandwidth bound. One chip can&rsquo;t feed itself fast enough, so they ganged up 72 of them with a custom interconnect. Result: 50x improvement over Hopper in two years. Moore&rsquo;s Law would have done 2x.</p>
<p><strong>Vera Rubin</strong>: built for agents. Jensen&rsquo;s framing: &ldquo;The goal isn&rsquo;t just to think. The goal is to do work.&rdquo; Agents have a different compute pattern than models. They need persistent context, tool use, and the ability to iterate. Vera Rubin is the first NVIDIA architecture designed from scratch for that workload.</p>
<p><strong>Feynman</strong> (in development): designed for swarms of agents and sub-agents. Jensen mentioned this almost in passing, but it&rsquo;s the most telling part of the talk. NVIDIA is already thinking about what comes after agents: systems where agents spawn other agents, where the compute pattern is less like a single brain and more like a colony.</p>
<hr>
<h2>MFU Is a Distraction
    </h2><p>Jensen pushed back on Model FLOP Utilization as a metric. His argument: MFU measures how hard you&rsquo;re using the silicon, not whether you&rsquo;re solving the right problem. He prefers tokens-per-watt and real-world evals. This matters because the industry has been obsessing over utilization numbers while missing the actual goal; useful work per unit of energy.</p>
<p>I think he&rsquo;s right. MFU has become a vanity metric. Everyone wants to say they&rsquo;re hitting 60% utilization. But if your architecture is wrong, 60% of the wrong thing is still wrong.</p>
<hr>
<h2>Open Models and the Democratization Argument
    </h2><p>He defended NVIDIA&rsquo;s open model strategy (Nemotron, BioNemo, Alpamayo) on three grounds:</p>
<p><strong>Safety.</strong> Closed models create a monoculture. If one architecture has a vulnerability, everyone running that model is exposed. Open models let researchers find and fix problems independently.</p>
<p><strong>Transparency.</strong> You can&rsquo;t audit what you can&rsquo;t see. For high-stakes applications: medicine, law, critical infrastructure; black-box models are a liability.</p>
<p><strong>Democratization.</strong> Most languages don&rsquo;t have GPT-level support. Most scientific domains don&rsquo;t have specialized models. Open models let the long tail fill itself in.</p>
<p>This is self-serving, of course. NVIDIA sells chips whether the model is open or closed. But it&rsquo;s also true.</p>
<hr>
<h2>The Energy Question
    </h2><p>Jensen&rsquo;s energy projection: roughly 1000x more compute power needed than we currently have.</p>
<p>He framed this as the strongest market signal in history for sustainable energy investment. Not a prediction. A necessity. The grid has to grow, nuclear has to scale, and the efficiency curve has to bend faster than token demand grows.</p>
<p>I keep coming back to this number. A thousand times. We&rsquo;re not optimizing our way out of that. We&rsquo;re building our way out.</p>
<hr>
<h2>What Stuck With Me
    </h2><p>Jensen talks about NVIDIA&rsquo;s organizational structure the same way he talks about their chips, as a system design problem. Extreme co-design applies to the company too. Flat structure, direct communication, no middle management filtering information. He doesn&rsquo;t present this as a management philosophy. He presents it as an engineering requirement. If information moves slowly, the chips will be wrong.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>David Gardner: What Rule Breakers Value</title><link>https://www.tmfnk.com/listen/podcasts/rule-breaker-what-rule-breakers-value-david-gardner/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/rule-breaker-what-rule-breakers-value-david-gardner/</guid><description>Why great companies always look expensive and why valuing them by the usual metrics misses the point.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Rule Breaker Investing</li>
<li><strong>Episode:</strong> <a href="https://podcasts.apple.com/us/podcast/david-gardner-what-rule-breakers-value/id306106212?i=1000709694053" target="_blank" rel="noopener">David Gardner: What Rule Breakers Value</a></li>
<li><strong>Host:</strong> David Gardner</li>
</ul>
<hr>
<p>David Gardner, co-founder of The Motley Fool and creator of the Rule Breaker philosophy, spends this episode explaining why the things that make a company valuable rarely show up in a spreadsheet.</p>
<p>The short version: great companies always look expensive. If you wait for them to look cheap, you will never own them.</p>
<hr>
<h2>The Opposite of Value Investing
    </h2><p>Gardner does not look for undervalued stocks. He looks for the most innovative leaders in important emerging fields. Companies that are reshaping their industries, not just competing in them. He calls them Rule Breakers because they redefine the game.</p>
<p>This means accepting high valuations as the norm. Amazon, Netflix, Nvidia, MercadoLibre, Axon — all looked expensive early on. All became 10x or 100x investments.</p>
<blockquote>
  <p>&ldquo;You&rsquo;ll never buy a cheap Palantir. If you insist on looking for bargains, you&rsquo;ll always miss companies like these.&rdquo;</p>
</blockquote>
<hr>
<h2>What Does Not Show Up in Financial Statements
    </h2><p>Gardner argues that the real drivers of long-term value are intangibles: who the CEO is, whether the culture supports innovation, whether the company can reinvent itself, how strong the brand is. None of these appear on a balance sheet. Traditional valuation models ignore them. That is why traditional valuation models miss the biggest winners.</p>
<hr>
<h2>Looking Further Ahead
    </h2><p>The market looks about six months ahead. Most institutional investors focus on quarterly earnings. If you are looking six years ahead, you are playing a different game. The right questions become: who is changing the industry? Who is redefining the customer experience? Who will still lead in five years?</p>
<hr>
<h2>Palantir as a Case Study
    </h2><p>Palantir trades at roughly 90x EV/Revenue. Most investors run the other way. But Palantir is embedded in enterprise decision-making at companies like Walgreens, handling hundreds of millions of decisions daily. Once a company depends on Palantir, they tend to become customers for life. That kind of lock-in does not show up in a P/E ratio.</p>
<hr>
<h2>Holding Through Volatility
    </h2><p>Rule Breaker stocks are volatile. Netflix, Nvidia, and Shopify have all dropped 50% or more in short periods. Those drops are part of the journey. The only way to get the exponential returns is to hold through them.</p>
<p>On Tesla: Gardner still holds it despite the controversy around Elon Musk. He does not invest based on a CEO&rsquo;s tweets. He invests in companies leading revolutions.</p>
<hr>
<h2>The Practical Takeaway
    </h2><p>Gardner&rsquo;s closing advice: buy every two weeks. Do not wait for dips. Do not try to time the market. Invest consistently, diversify, and buy companies you are willing to hold for a decade or more.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Episode 393: The Marketing Genius of the Michelin Brothers</title><link>https://www.tmfnk.com/listen/podcasts/founders-episode-393-michelin-brothers/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/founders-episode-393-michelin-brothers/</guid><description>How André and Édouard Michelin turned a bankrupt rubber factory into a global tire empire through complementary skills, innovation, and the most iconic marketing campaign of all time.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Founders</li>
<li><strong>Host:</strong> David Senra</li>
<li><strong>Episode:</strong> <a href="https://podcasts.apple.com/us/podcast/393-the-marketing-genius-of-the-michelin-brothers/id1141877104?i=1000715520812" target="_blank" rel="noopener">393 — The Marketing Genius of the Michelin Brothers</a></li>
<li><strong>Listen:</strong> <a href="https://www.youtube.com/watch?v=0YjkxONApG0&amp;list=PLqPD35gA2bgFbXartqmiBTmP3QTFYOO57&amp;index=5&amp;ab_channel=FoundersPodcast" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>David Senra covers André and Édouard Michelin, two brothers who took over a bankrupt rubber factory in the late 1800s and turned it into one of the most recognizable brands in the world. Neither had experience in rubber manufacturing.</p>
<hr>
<h2>The Brothers
    </h2><p>Édouard was an art student who managed production. André was an engineer who handled marketing. Their aunt put up 500,000 francs to save the business. Édouard shifted the factory from unprofitable products to rubber brake pads for horse carriages, then pivoted to pneumatic bicycle tires after seeing their potential.</p>
<p>He improved on Dunlop&rsquo;s design by making the tires detachable and easier to repair. That was the breakthrough.</p>
<hr>
<h2>The Marketing
    </h2><p>André was the marketing genius. His core insight: sell movement, not tires. If people drive more, they wear out more tires. Everything else was in service of that loop.</p>
<p><strong>Races.</strong> They proved tire durability through bicycle and car races. A famous 1891 win boosted sales from 12 tires in stock to 10,000 users in a year.</p>
<p><strong>The Michelin Guide.</strong> Launched in 1900 as a free travel guide with maps, hotel listings, and restaurant reviews. It encouraged driving. It eventually became the Michelin Star system.</p>
<p><strong>Road signs.</strong> Michelin built thousands of road signs across France for free. Each one subtly branded. Each one encouraging longer trips.</p>
<p><strong>The Michelin Man.</strong> The mascot who drinks nails and glass to show durability.</p>
<hr>
<h2>Business Philosophy
    </h2><p>Édouard&rsquo;s mantra: &ldquo;Little streams make big rivers.&rdquo; He calculated that a minute lost per hour across 20,000 workers equaled 333 years of lost work annually. Waste nothing. But invest heavily in machinery when it creates advantage.</p>
<p>No external capital. No dividends. Reinvest everything.</p>
<hr>
<h2>The Core Loop
    </h2><p>Create the conditions for your product&rsquo;s success. Embed yourself in the rise of an entire industry. The Michelin brothers did not just make tires. They made people want to drive, which made people need tires.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Episode 394: An Orphan Who Built an Empire — Leonardo Del Vecchio and Luxottica</title><link>https://www.tmfnk.com/listen/podcasts/founders-episode-394-del-vecchio-luxottica/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/founders-episode-394-del-vecchio-luxottica/</guid><description>Leonardo Del Vecchio went from an orphanage to building Luxottica, the world's largest eyewear company, through vertical integration, obsessive quality, and relentless work.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Founders</li>
<li><strong>Host:</strong> David Senra</li>
<li><strong>Episode:</strong> <a href="https://podcasts.apple.com/us/podcast/394-an-orphan-who-built-an-empire-leonardo-del/id1141877104?i=1000716999506" target="_blank" rel="noopener">394 — An Orphan Who Built an Empire</a></li>
<li><strong>Listen:</strong> <a href="https://www.youtube.com/watch?v=bijdxv0lG7w&amp;ab_channel=FoundersPodcast" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Leonardo Del Vecchio lost his father before he was born. At seven, his mother placed him in an orphanage. He died at 87 as the founder of Luxottica, the company that owns Ray-Ban, Oakley, LensCrafters, and licenses for almost every major fashion eyewear brand. Meta recently invested $3.5 billion in EssilorLuxottica.</p>
<hr>
<h2>Early Life
    </h2><p>Orphanage discipline and a focus on craftsmanship shaped him. At 14 he started as a metal engraver. By 25, he opened his own workshop in a remote village — free land was the incentive. He made eyeglass parts.</p>
<hr>
<h2>Building Luxottica
    </h2><p>He took a fragmented industry and consolidated it through vertical integration. He controlled raw materials, production, and retail. He bought Ray-Ban, Oakley, and LensCrafters. He partnered with fashion houses to turn eyewear into a high-margin accessory.</p>
<hr>
<h2>The Man
    </h2><p>He started work at 3 a.m. He was never satisfied. He treated the company as his life&rsquo;s purpose. The early fear of losing everything never left him.</p>
<hr>
<h2>Legacy
    </h2><p>Even in his 80s, he orchestrated the merger with Essilor to create the world&rsquo;s largest eyewear company. He was buried in work until the end.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Five Idle Thoughts of a Summer's Day, Vol. 2</title><link>https://www.tmfnk.com/listen/podcasts/rule-breaker-five-idle-thoughts-of-a-summers-day-vol-2/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/rule-breaker-five-idle-thoughts-of-a-summers-day-vol-2/</guid><description>David Gardner's whimsical summer series: celebrating NVIDIA's 1000-bagger, the four types of capital, embracing reality, the beauty of trade, and words that rhyme with Fool.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Rule Breaker Investing</li>
<li><strong>Episode:</strong> <a href="https://podcasts.apple.com/us/podcast/five-idle-thoughts-of-a-summers-day-vol-2/id1017325738?i=1000717542600" target="_blank" rel="noopener">Five Idle Thoughts of a Summer&rsquo;s Day, Vol. 2</a></li>
<li><strong>Host:</strong> David Gardner</li>
<li><strong>Seasonal:</strong> Recorded summer 2025</li>
</ul>
<hr>
<p>Every summer, David Gardner does a lighter episode. Five loosely connected thoughts, a glass of lemonade, no heavy thesis. This is the second volume.</p>
<hr>
<h2>Thought 1: NVIDIA&rsquo;s 1000-Bagger
    </h2><p>NVIDIA became a 1000-bagger for Motley Fool Stock Advisor members. Recommended in April 2005 at a split-adjusted 16 cents per share, it crossed $160. Amazon shares the same 16-cent cost basis. Gardner is writing a book called <em>Rule Breaker Investing</em> that opens with NVIDIA. But he footnotes it: the point is not that one stock. The point is the habit of letting winners run. Mutual funds trim winners. Individual investors can hold.</p>
<hr>
<h2>Thought 2: Four Types of Capital
    </h2><p>Inspired by <em>Completing Capitalism</em> by Jay Jacob and Bruno Roche:</p>
<ul>
<li><strong>Financial capital</strong> — money and assets</li>
<li><strong>Human capital</strong> — skills, knowledge, how people are treated</li>
<li><strong>Social capital</strong> — community, trust, relationships</li>
<li><strong>Natural capital</strong> — the environment</li>
</ul>
<p>Two insights: improving any one lifts the others, creating a virtuous cycle. And life goals should cover all four. If you have financial success, focus on the other three. Gardner mentions ocean conservation as a personal interest.</p>
<hr>
<h2>Thought 3: Reality
    </h2><p>Gardner contrasts virtual, augmented, mixed, extended, and diminished reality with plain old reality. He argues that most mistakes come from ignoring it.</p>
<p>He revisits a pet peeve: &ldquo;I&rsquo;ll be honest with you&rdquo; or &ldquo;If I&rsquo;m being honest.&rdquo; The implication is that the rest of the time you are not. Consistent truthfulness is simpler.</p>
<hr>
<h2>Thought 4: The Beauty of Trade
    </h2><p>Global merchandise exports grew from $0.6 trillion in 1970 to over $20 trillion recently. That is a 30-bagger. Trade enriches materially and culturally. Gardner quotes Montesquieu: &ldquo;Two nations that trade with each other become reciprocally dependent. The natural effect of commerce is to lead to peace.&rdquo; He regrets rising tariffs and argues for open exchange.</p>
<hr>
<h2>Thought 5: Words That Rhyme with Fool
    </h2><p>A playful closing riff on the Motley Fool ethos:</p>
<ul>
<li><strong>Cool</strong> — being approachable about money</li>
<li><strong>Rule</strong> — knowing rules and when to break them</li>
<li><strong>School</strong> — financial literacy</li>
<li><strong>Jewel</strong> — creating something valuable</li>
<li><strong>Pool</strong> — building community</li>
<li><strong>Tool</strong> — being useful</li>
</ul>
<p>The point: they teach life through investing, the same way a basketball coach teaches life through basketball.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>The Jamie Dimon Interview</title><link>https://www.tmfnk.com/listen/podcasts/aquired-jamie-dimon-interview/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/aquired-jamie-dimon-interview/</guid><description>Ben Gilbert and David Rosenthal sit down with Jamie Dimon at Radio City Music Hall for a deep dive into his 25-year transformation of JPMorgan Chase, the Bear Stearns acquisition, and his fortress balance sheet philosophy.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Acquired</li>
<li><strong>Hosts:</strong> Ben Gilbert, David Rosenthal</li>
<li><strong>Guest:</strong> Jamie Dimon — Chairman and CEO of JPMorgan Chase</li>
<li><strong>Duration:</strong> ~2 hours</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/the-jamie-dimon-interview/id1050462261?i=1000717531260" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=AR_1IPhzAtU" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Live from Radio City Music Hall. Jamie Dimon on how he built JPMorgan Chase into America&rsquo;s most systemically important bank — worth $800 billion, more than double any competitor.</p>
<hr>
<h2>Getting Fired from Citigroup
    </h2><p>In 1998, Dimon was the expected successor at Citigroup. He was fired in a Sunday evening meeting at his own apartment, where he happened to be hosting 100 recruiting prospects. His response: &ldquo;Okay.&rdquo; The decision had been made. He went back to the party and told his three daughters they were moving.</p>
<hr>
<h2>The Wilderness Period
    </h2><p>Dimon spent 18 months considering options. Jeff Bezos asked him to be president of Amazon. He passed — too far from financial services. He considered Home Depot despite never having visited one. He turned down Hank Greenberg at AIG because he did not want to work for another strong-willed leader.</p>
<hr>
<h2>Bank One
    </h2><p>In 2000, Dimon became CEO of Bank One — a $30 billion market cap mess compared to Citigroup&rsquo;s $200 billion. He invested $60 million of his own money — half his net worth — to signal commitment. The bank was an amalgamation of acquisitions that had never been integrated: multiple systems, 21 board members in warring tribes. Dimon fixed it by personally reviewing every loan and shifting revenue from interest-based to fee-based.</p>
<hr>
<h2>The JPMorgan Merger
    </h2><p>Four years later, Dimon merged Bank One with JPMorgan Chase. Bank One got 42% of the combined company. The merger agreement made it nearly impossible to block Dimon from becoming CEO — 75% of the board would have to vote against him.</p>
<hr>
<h2>The Fortress Balance Sheet
    </h2><p>By 2006, Dimon saw warning signs. He reduced subprime exposure, stockpiled liquidity, and kept leverage at roughly one-third of competitors&rsquo;. While investment banks ran at 35:1 leverage, JPMorgan stayed conservative. He eliminated deal-based compensation that rewarded risk-taking without regard for the firm.</p>
<hr>
<h2>Bear Stearns (2008)
    </h2><p>The call came on Dimon&rsquo;s birthday, during dinner with his family. Bear Stearns needed $30 billion before Asian markets opened. Dimon mobilized over 100 employees. JPMorgan bought Bear Stearns for $2 a share (later raised to $10). The company had traded at $170. JPMorgan wrote off the entire $12 billion book value.</p>
<hr>
<h2>Washington Mutual
    </h2><p>Six months later, WaMu fell. Unlike Bear Stearns, this acquisition was strategically valuable: 2,300 branches across California, Nevada, Georgia, and Florida. JPMorgan bought it at a $30 billion discount to book value, effectively getting a cleaned balance sheet and geographic expansion for free.</p>
<hr>
<h2>The 2023 Crisis
    </h2><p>Dimon had warned regulators about the risks at Silicon Valley Bank and First Republic: concentrated deposits and interest rate losses hidden by &ldquo;held to maturity&rdquo; accounting. When First Republic failed, JPMorgan acquired it and integrated it smoothly — hedging immediately, converting systems rapidly.</p>
<hr>
<h2>What Makes JPMorgan Different
    </h2><p>JPMorgan retains roughly 15 cents more profit per revenue dollar than competitors while investing more in technology, personnel, and branches. Dimon runs 100 stress tests weekly — market down 50%, rates up to 8%, credit spreads at historical max. The point is not prediction. It is preparation.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Pricing Your AI Product — Lessons from 400+ Companies and 50 Unicorns</title><link>https://www.tmfnk.com/listen/podcasts/lennys-podcast-pricing-ai-product-madhavan-ramanujam/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/lennys-podcast-pricing-ai-product-madhavan-ramanujam/</guid><description>Madhavan Ramanujam on why AI pricing is different from SaaS, the attribution-autonomy framework, outcome-based pricing, and why POCs should be business case development.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Lenny&rsquo;s Podcast</li>
<li><strong>Host:</strong> Lenny Rachitsky</li>
<li><strong>Guest:</strong> Madhavan Ramanujam — managing partner at Simon-Kucher, author of <em>Monetizing Innovation</em> and <em>Scaling Innovation</em></li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/pricing-your-ai-product-lessons-from-400-companies/id1627920305?i=1000719362528" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://youtu.be/NR85H55eYkM" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Madhavan Ramanujam has worked with over 250 companies including 30 unicorns on pricing strategy. His thesis: AI changes everything about monetization, and most founders are getting it wrong.</p>
<h2>Why AI Pricing Is Different
    </h2><p>Three things make AI fundamentally different from traditional SaaS:</p>
<ol>
<li><strong>Immediate value creation</strong> — AI delivers quantifiable outcomes, not vague productivity improvements. The attribution problem is solved.</li>
<li><strong>Real cost structure</strong> — Unlike SaaS (near-zero marginal cost), AI has real computational expenses that scale with usage.</li>
<li><strong>Labor budget access</strong> — AI competes against human labor, not software. Labor budgets are 10x larger than software budgets.</li>
</ol>
<h2>The Dual Engine Strategy
    </h2><p>Companies fall into two traps. Market share–only companies give away too much value acquiring customers they cannot expand. Wallet share–only companies price so high they limit their addressable market. You must master both simultaneously.</p>
<h2>The Attribution-Autonomy Framework
    </h2><p>The right pricing model depends on two dimensions:</p>
<ul>
<li><strong>Low attribution, low autonomy</strong> → subscription pricing (work on improving attribution)</li>
<li><strong>High attribution, low autonomy</strong> → hybrid (base + consumption credits, like Cursor)</li>
<li><strong>Low attribution, high autonomy</strong> → usage-based pricing (usage as value proxy)</li>
<li><strong>High attribution, high autonomy</strong> → <strong>outcome-based pricing</strong> (the premium quadrant)</li>
</ul>
<p>Only 5% of companies use outcome-based pricing today. Ramanujam predicts 25% within three years.</p>
<h2>POC as Business Case
    </h2><p>Stop treating proof of concepts as technical validations. The entire goal of a POC is to create a business case. Co-create the ROI model with the customer from day one. Agree on assumptions before demonstrating outcomes. Charge for POCs to qualify serious buyers.</p>
<h2>The 20/80 Axiom
    </h2><p>20% of what you build drives 80% of willingness to pay. And ironically, that 20% is often the easiest to build. Identify your highest-value features and monetize them properly instead of giving them away.</p>
<h2>Price Increases Are Emotional, Not Logical
    </h2><p>&ldquo;Your reluctance to do a price increase is often internal and emotional, not external and logical.&rdquo; Regular price increases tied to value delivery should be standard practice.</p>
<h2>Outcome-Based Pricing Power
    </h2><p>Companies in the outcome-based quadrant can capture 25-50% of the value they create, compared to 10-20% for traditional SaaS. The autonomous nature of AI and clearer attribution makes this possible.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Episode 396: The Obsession of Enzo Ferrari</title><link>https://www.tmfnk.com/listen/podcasts/founders-episode-396-enzo-ferrari/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/founders-episode-396-enzo-ferrari/</guid><description>David Senra on Enzo Ferrari's ironbound tenacity, his obsession with winning races, and how he built the most iconic automotive brand in history.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Founders</li>
<li><strong>Host:</strong> David Senra</li>
<li><strong>Episode:</strong> <a href="https://podcasts.apple.com/us/podcast/396-the-obsession-of-enzo-ferrari/id1141877104?i=1000719746555" target="_blank" rel="noopener">396 — The Obsession of Enzo Ferrari</a></li>
<li><strong>Listen:</strong> <a href="https://www.youtube.com/watch?v=-quUT9uGApo&amp;ab_channel=FoundersPodcast" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Enzo Ferrari&rsquo;s defining quality, according to Senra, was &ldquo;ironbound tenacity.&rdquo; From 1930 until his death at 90, he pursued a single goal: winning automobile races with cars bearing his name. Hardly a day passed without it.</p>
<hr>
<h2>Early Rejection
    </h2><p>At 18, Ferrari&rsquo;s father and brother died. The family business collapsed. He was conscripted into the army. When he applied to Fiat after the war, they rejected him. He sat on a park bench in Turin thinking: &ldquo;No money, no experience, limited education. All I had was a passion to get somewhere.&rdquo;</p>
<p>That rejection fueled him for the rest of his life. He never forgot it.</p>
<hr>
<h2>The Ferrari Way
    </h2><p>His factory in Maranello employed 600 highly skilled workers producing just 750 cars a year. Crankshafts were hand-sculpted from steel over 86 hours. Ferrari said: &ldquo;When the driver steps on the gas, I want him to shit his pants.&rdquo;</p>
<p>He understood exclusivity as marketing. &ldquo;A Ferrari must be desired. It cannot and must not be perceived as something that is immediately available; otherwise, the dream is gone.&rdquo;</p>
<hr>
<h2>Agitator of Men
    </h2><p>Ferrari described himself as an &ldquo;agitator of men.&rdquo; He managed proud, egocentric drivers by pushing them relentlessly. Racing, he said, &ldquo;is a profession for men who do not wish to die in bed.&rdquo; He believed competition was the catalyst for innovation. And he believed loss taught more than victory: &ldquo;When one loses, one knows what has to be done. When one wins, one is never sure.&rdquo;</p>
<hr>
<h2>The Cost
    </h2><p>He never took a vacation. His marriage suffered. He admitted he should not have married because a man with his obsession &ldquo;can hardly divide himself in half.&rdquo; When asked how he wanted to be remembered: &ldquo;As someone who dreamt of becoming Ferrari.&rdquo;</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Episode 397: Jiro Ono — Simplicity Is the Ultimate Advantage</title><link>https://www.tmfnk.com/listen/podcasts/founders-episode-397-jiro-ono/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/founders-episode-397-jiro-ono/</guid><description>David Senra on Jiro Ono, the 85-year-old sushi master who runs a 10-seat restaurant in a Tokyo subway station and holds three Michelin stars.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Founders</li>
<li><strong>Host:</strong> David Senra</li>
<li><strong>Episode:</strong> <a href="https://podcasts.apple.com/us/podcast/founders/id1141877104?i=1000720540607" target="_blank" rel="noopener">397 — Jiro Ono: Simplicity Is the Ultimate Advantage</a></li>
<li><strong>Listen:</strong> <a href="https://www.youtube.com/watch?v=x2Rj0sgjDSw&amp;ab_channel=FoundersPodcast" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>David Senra covers the documentary <em>Jiro Dreams of Sushi</em> — he transcribed and analyzed it for this episode. Jiro Ono runs a 10-seat sushi counter in a Tokyo subway station. No appetizers. No distractions. Only sushi. The meal lasts 15 to 20 minutes and costs about $400. It has three Michelin stars.</p>
<hr>
<h2>The Spirit of Shokunin
    </h2><p>Shokunin is the Japanese concept of the master craftsman who devotes their life to perfecting a skill, not for personal glory but as a moral duty. Jiro embodies it. His advice: &ldquo;Once you decide on your occupation, you must immerse yourself in your work. You have to fall in love with your work. Never complain about your job. You must dedicate your life to mastering your skill. That is the secret of success.&rdquo;</p>
<hr>
<h2>Early Hardship
    </h2><p>At seven, Jiro was told he had no home to come back to. His father&rsquo;s business had failed. He worked just to avoid sleeping under a bridge. That fear never left him. He started working in restaurants at nine and went through the classic sushi apprenticeship: cleaning, prep work, years of proving himself before touching fish. It took 30 years before he opened his own restaurant at 39.</p>
<hr>
<h2>The Method
    </h2><p>Jiro&rsquo;s restaurant is simple by design. &ldquo;A novice is easily spotted because they do too much. Too many ingredients, too many movements, too much explanation. A master uses the fewest resources required to fulfill their intention.&rdquo;</p>
<p>His vendors are all specialists. One sells only tuna. One sells only shrimp. Jiro trusts their expertise more than his own in their domains.</p>
<p>The training is brutal. Apprentices first learn to hand-squeeze hot towels until their hands burn. Ten years before they are recognized as first-rate chefs.</p>
<hr>
<h2>Continuous Improvement
    </h2><p>Jiro is never satisfied. He runs constant experiments. He increased octopus massaging time from 30 to 50 minutes. He changed when he boils the shrimp. His rice pot is so heavy it takes two hands to lift the lid. &ldquo;The techniques that we use, they&rsquo;re not a big secret. It&rsquo;s just about making an effort and repeating the same thing every day.&rdquo;</p>
<hr>
<h2>The Cost
    </h2><p>Jiro&rsquo;s sons remember a stranger sleeping in their house on Sundays. It was their father. Jiro admits he was not much of a father. When asked about retirement: &ldquo;If I don&rsquo;t keep working, my body will become worthless.&rdquo;</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>The Easiest Way to Win Online</title><link>https://www.tmfnk.com/listen/podcasts/big-deal-81-easiest-way-to-win-online/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/big-deal-81-easiest-way-to-win-online/</guid><description>Codie Sanchez on why 1,000 true fans beat a million followers, the problem-to-product loop, the Where's Waldo strategy for niche dominance, and turning attention into intention.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Big Deal by Codie Sanchez</li>
<li><strong>Host:</strong> Codie Sanchez</li>
<li><strong>Guest:</strong> Solo episode</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/bigdeal/id1736593333?i=1000719536776" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=Pff9o-UezKo" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Codie Sanchez on building a billion-dollar brand through community, attention, and intention.</p>
<hr>
<h2>40 Cents of Every VC Dollar Goes to Distribution
    </h2><p>A staggering proportion of venture capital goes to getting eyeballs. Attention is the real currency. But most creators fail to convert attention into intention — actual purchases.</p>
<hr>
<h2>1,000 True Fans &gt; 1 Million Followers
    </h2><p>Kevin Kelly&rsquo;s thesis proven out. A thousand hyper-engaged fans paying $100/year generates $100,000 annually. Get people obsessed with what you do, not just vaguely aware.</p>
<hr>
<h2>The Problem-to-Product Loop
    </h2><p>Identify a problem in your niche, create a free content resource around it, measure engagement, build a product that solves it, learn from feedback, iterate. Your community will tell you exactly what to build.</p>
<hr>
<h2>The Where&rsquo;s Waldo Strategy
    </h2><p>Go as niche as humanly possible. Amazon started as a bookstore. &ldquo;Laundromat owners&rdquo; is a better niche than &ldquo;small business owners.&rdquo; Japanese anime with female protagonists has a Facebook group. Specificity breeds authority.</p>
<hr>
<h2>The Marketing Infinity Loop
    </h2><p>Free content becomes your marketing. Paid products become your marketing. Customer feedback improves your products. Better products attract more customers. The loop feeds itself.</p>
<hr>
<h2>Community Trumps Content
    </h2><p>Successful brands do not just create content — they build communities. Create content that turns other people into evangelists. Make people feel like insiders.</p>
<hr>
<h2>The Worst Thing You Can Do Is Be Boring
    </h2><p>Sanchez wants people to either hate or love what she does. Apathy is the enemy. Pessimists sound smart. Optimists make money.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Perform: Enhance Your Physical and Mental Resilience with Dr. Andy Galpin</title><link>https://www.tmfnk.com/listen/podcasts/perform-andy-galpin-physical-mental-resilience/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/perform-andy-galpin-physical-mental-resilience/</guid><description>Dr. Andy Galpin on HRV, respiratory rate, and CO2 tolerance as biomarkers for nervous system regulation, and how to build resilience by expanding your autonomic bandwidth.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Perform</li>
<li><strong>Guest:</strong> Dr. Andy Galpin — professor, exercise physiologist</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/perform/id1547602251?i=1000720013879" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=mfUO1CaEMBw&amp;ab_channel=AndyGalpin" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Dr. Andy Galpin explains how to measure and train your autonomic nervous system using biomarkers. The goal is not to avoid stress but to expand your capacity to handle it.</p>
<hr>
<h2>The Highway Analogy
    </h2><p>Resilience is autonomic bandwidth. A one-lane highway crashes into the guardrails when life swerves. A seven-lane highway handles the same stress without dysfunction. Widening the lanes is the point.</p>
<hr>
<h2>HRV: The Gold Standard
    </h2><p>Heart rate variability is a window into autonomic flexibility. Higher HRV correlates with better stress resilience, cognitive performance, and immune function. More variation between heartbeats means more parasympathetic recovery. A metronome-like heartbeat signals sympathetic overload.</p>
<hr>
<h2>Respiratory Rate: The Early Warning
    </h2><p>Changes in breathing patterns often precede HRV shifts. It is more sensitive than HRV and shows up first when something is wrong.</p>
<hr>
<h2>The Paradox of Pure Relaxation
    </h2><p>Chronic downregulation without stress challenges weakens resilience. True mastery is the ability to toggle between states: upregulate and downregulate with control. Sometimes the fastest way to calm down is to charge up first.</p>
<hr>
<h2>CO2 Tolerance
    </h2><p>Better CO2 tolerance reflects improved oxygen utilization, pH buffering, and mitochondrial health. It is not about holding your breath. It is about how efficiently your body uses oxygen.</p>
<hr>
<h2>Acute vs. Chronic
    </h2><p>Acute tools are emergency brakes: breathwork for downregulation, cold exposure for upregulation. Chronic tools rebuild the engine: consistent sleep, progressive training, nutrition.</p>
<hr>
<h2>The Three I&rsquo;s
    </h2><ol>
<li><strong>Investigate</strong> — measure biomarkers (HRV, respiratory rate, CO2 tolerance)</li>
<li><strong>Interpret</strong> — contextualize data within sleep, nutrition, stress</li>
<li><strong>Intervene</strong> — apply acute or chronic strategies</li>
</ol>
<hr>
<h2>Measurement Drives Mastery
    </h2><p>Subjective feelings often misrepresent physiological state. Objective data creates awareness. You cannot improve what you do not measure.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Master Communicator: How to Win Arguments Without Losing Relationships</title><link>https://www.tmfnk.com/listen/podcasts/big-deal-master-communicator-win-arguments/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/big-deal-master-communicator-win-arguments/</guid><description>Negotiation expert Kwame Christian on compassionate curiosity, anchoring, the 70-30 rule, and why being right is not the same as being persuasive.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Big Deal by Codie Sanchez</li>
<li><strong>Host:</strong> Codie Sanchez</li>
<li><strong>Guest:</strong> Kwame Christian — founder of the American Negotiation Institute</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/bigdeal/id1736593333?i=1000721087326" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=c36S2A7f1zc" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Kwame Christian on the art of winning arguments without destroying relationships. His core insight: being right is not the same as being persuasive.</p>
<hr>
<h2>Being Right vs. Being Persuasive
    </h2><p>You can be as right as you want, and it does not matter, because the part of the brain that processes logic shuts down during emotional conflict. The amygdala hijacks the frontal lobe. You win by helping the other person discover they are wrong on their own.</p>
<hr>
<h2>Compassionate Curiosity
    </h2><p>A three-step framework for difficult conversations:</p>
<ol>
<li><strong>Acknowledge emotions</strong> — validate the emotional challenge first</li>
<li><strong>Ask questions</strong> — get curious with compassion once the temperature drops</li>
<li><strong>Joint problem solving</strong> — shift from me vs. you to us vs. the problem</li>
</ol>
<hr>
<h2>The 70-30 Rule
    </h2><p>Speak 30% of the time, listen 70%. Over-explaining gives away your power. When you over-explain, you are seeking validation from outside yourself.</p>
<hr>
<h2>Memory Is Bad
    </h2><p>Most arguments about what happened stem from genuine memory failures, not manipulation. Take notes. Focus on patterns rather than isolated incidents.</p>
<hr>
<h2>Sacrifice the Past to Win the Future
    </h2><p>Pain, resentment, and judgment all exist in the past. It is hard to be mad at something that has not happened yet. Shift the conversation from what went wrong to what we can do going forward.</p>
<hr>
<h2>Trust Is Gained in Drips, Lost in Buckets
    </h2><p>Relationships require a 5-to-1 ratio of positive to negative interactions. Build emotional reserves during peace so you can draw on them during conflict.</p>
<hr>
<h2>Anchoring
    </h2><p>Set the reference point first. Make the first aggressive but justifiable offer when you have more information. First offers anchor the entire conversation.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>I Asked 6 Billionaires How to Get Rich</title><link>https://www.tmfnk.com/listen/podcasts/big-deal-80-asked-6-billionaires-how-to-get-rich/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/big-deal-80-asked-6-billionaires-how-to-get-rich/</guid><description>Codie Sanchez distills wisdom from six billionaire guests into a masterclass on wealth — coaching, first-principles thinking, risk, speed, service, and ownership.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Big Deal by Codie Sanchez</li>
<li><strong>Host:</strong> Codie Sanchez</li>
<li><strong>Guest:</strong> Compilation episode (6 billionaires)</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/bigdeal/id1736593333?i=1000718691372" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=HxMoOXdhf-k" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Codie Sanchez pulls together the most impactful insights from six billionaire conversations into a single episode. The pattern is clear: billionaires do not have secret knowledge. They apply ordinary principles with radical consistency.</p>
<hr>
<h2>Coaching as a Billionaire Habit
    </h2><p>Every billionaire has coaches — not just for business but for swimming, memory, spirituality. Mastery requires external perspective. Investing in yourself to get better is the highest-leverage activity there is.</p>
<hr>
<h2>First Principles Thinking
    </h2><p>Billionaires relentlessly question assumptions. &ldquo;Go back to base level. What are our fundamental assumptions?&rdquo; This is how they see opportunities that everyone else misses.</p>
<hr>
<h2>The Risk Spectrum
    </h2><p>The younger you are, the easier it is to take risks. Use that advantage. Risk is a muscle — you atrophy it by avoiding it. Later in life, you shift to calculated bets and asymmetric upside.</p>
<hr>
<h2>Speed as Wealth Catalyst
    </h2><p>&ldquo;Decrease the time between having an idea and getting it done.&rdquo; Everything changes when you do. Billionaires obsess over execution velocity because they understand that time compounds wealth and delays cost exponentially.</p>
<hr>
<h2>Service Is the Business Model
    </h2><p>The billionaires collectively emphasize that wealth flows from solving problems at scale. &ldquo;If you help enough people, you don&rsquo;t have to worry about money.&rdquo; Service creates trust, trust scales, and scale creates wealth.</p>
<hr>
<h2>Equity Over Salary
    </h2><p>The biggest difference between employees and owners: employees seek salary, owners seek equity. Make yourself irreplaceable first, then use that leverage to negotiate ownership.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>This Simple 5-Step Program Builds Lasting Financial Freedom</title><link>https://www.tmfnk.com/listen/podcasts/the-school-of-greatness-jaspreet-singh-5-step-financial-freedom/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/the-school-of-greatness-jaspreet-singh-5-step-financial-freedom/</guid><description>Jaspreet Singh breaks down a systematic five-step approach to building wealth: earn, don't spend it all, buy investments, reinvest returns, and earn more to invest more.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> The School of Greatness</li>
<li><strong>Host:</strong> Lewis Howes</li>
<li><strong>Guest:</strong> Jaspreet Singh — founder of Minority Mindset, author of <em>Make Money Easy</em></li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/the-school-of-greatness/id596047499?i=1000718487196" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=0JALzYLhfOM" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Jaspreet Singh argues that the economic system is designed to keep people poor. School teaches you to get a job and spend. It never teaches you what to do with the money. The result: 78% of Americans live paycheck to paycheck, even when their income is sufficient.</p>
<hr>
<h2>The Money Mindset
    </h2><p>Singh says four beliefs must come first:</p>
<ol>
<li>It is my duty to become wealthy</li>
<li>Money is abundant</li>
<li>Money is a tool</li>
<li>I will become wealthy</li>
</ol>
<p>Deep-seated subconscious beliefs about money determine outcomes more than income or education. If you grew up hearing &ldquo;we can&rsquo;t afford that,&rdquo; that voice runs the show until you replace it.</p>
<hr>
<h2>The Five-Step Wealth Building System
    </h2><ol>
<li><strong>Earn money</strong> — through a job, business, or side hustle</li>
<li><strong>Don&rsquo;t spend all of it</strong> — create a gap between income and expenses</li>
<li><strong>Buy investments</strong> — use the gap to purchase assets that grow</li>
<li><strong>Reinvest returns</strong> — let compounding accelerate</li>
<li><strong>Earn more</strong> — increase income to invest more</li>
</ol>
<hr>
<h2>The 75-15-10 Plan
    </h2><p>Singh&rsquo;s simple allocation: spend no more than 75% of income, invest at least 15%, save at least 10%. Automate it so emotion does not interfere.</p>
<hr>
<h2>Making Money vs. Building Wealth
    </h2><p>High income does not equal wealth. Plenty of people who made millions died broke. Building wealth requires systematically converting income into investments that generate returns independent of your labor.</p>
<hr>
<h2>The Beginning Is the Hardest Part
    </h2><p>Early investing feels thankless. You see no returns. Markets go up and down. Most people quit before reaching the accelerating growth phase. The snowball starts small. It gets bigger slowly at first. Then fast.</p>
<hr>
<h2>Emotional Investing Is the Biggest Mistake
    </h2><p>90% of people lose money in the stock market despite the market averaging 10% annual returns over the last century. The difference is emotional decision-making — buying high out of greed, selling low out of fear. Winter is always coming. Prepare during good times.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>The Hidden Fortune: How Reading Books Can Transform Your Financial Future</title><link>https://www.tmfnk.com/read/articles/the-hidden-fortune-reading-books/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/read/articles/the-hidden-fortune-reading-books/</guid><description>People who read at least seven business books a year earn over 2.3 times more than those who read only one. The numbers are clear, the research is consistent, and yet a surprising number of people still dismiss reading as a waste of time.</description><content:encoded><![CDATA[

<hr>
<p>There is a persistent idea floating around online that reading books is a waste of time, that you cannot make money by reading, that experience is the only teacher that matters. It comes from influential people with large followings, and it is dead wrong.</p>
<p>The evidence sits on the other side of the argument. And it is heavy.</p>
<h2>What the Numbers Say
    </h2><p>A study covering 5,280 men across nine European countries found that people who read at least ten non-compulsory books earned <strong>21% more income</strong> than those who did not. The gains tapered beyond ten books, but they did not reverse.</p>
<p>Business-specific reading shows an even bigger gap. People who read at least seven business books a year earn <strong>over 2.3 times more</strong> than those who read just one. This appears across multiple studies including data cited by the U.S. Department of Labor.</p>
<p>The National Literacy Trust tracked the link between reading and financial capability in young people. Children with good reading skills were <strong>four times as likely</strong> to have good financial skills compared to peers with poor reading skills (35.6% vs 8.8%). The reverse was also true: poor reading correlated with poor financial capability at the same rate.</p>
<p>These numbers are consistent across different countries, age groups, and methodologies. They point in one direction.</p>
<h2>What the Readers Say
    </h2><p>Warren Buffett once pointed to a stack of books and said: &ldquo;Read 500 pages like this every day. That&rsquo;s how knowledge works. It builds up, like compound interest. All of you can do it, but I guarantee not many of you will do it.&rdquo;</p>
<p>Charlie Munger put it even more bluntly: &ldquo;In my whole life, I have known no wise people, over a broad subject matter area, who didn&rsquo;t read all the time. None, zero.&rdquo;</p>
<p>Naval Ravikant frames reading as compound interest for the mind. Improve by 1% every day through reading and you end up 37 times better by the end of the year. The biggest gains come at the end of the compounding period, same as with money.</p>
<p>The average CEO reads about 60 books a year. Five books per month. That is not a coincidence.</p>
<h2>How Reading Changes Your Financial Trajectory
    </h2><p>The mechanism is not magical. Reading builds mental models, and mental models improve decisions. Munger argued that you need models from multiple disciplines because single-frame thinking distorts reality to fit what you already believe. Reading across fields — philosophy, history, psychology, science, fiction — gives you a latticework of models to test against the world.</p>
<p>Better models mean better financial decisions. You spot opportunities others miss because your framework is wider.</p>
<p>Reading also builds confidence. The more you read, the less you are pushed around by the hot takes of the day. You develop independent judgment. You become harder to manipulate and harder to exploit. That alone has financial value.</p>
<p>And there is the employability factor. Only 42% of adults read a book after graduating from college. If you are one of the few who keeps reading, you are automatically more valuable in any knowledge-work setting. Employers pay for the ability to think on your feet, and reading is how you develop it.</p>
<h2>The Practical Path
    </h2><p>If you are convinced but do not know where to start, here is what works.</p>
<p><strong>Read what you like until you like to read.</strong> Naval says this and it is the most important piece of advice on this list. If you start with fiction, start with fiction. The habit matters more than the genre. Once reading is a habit, you will naturally reach for more challenging material.</p>
<p><strong>Read across disciplines.</strong> Do not stay in one lane. Business books teach you one thing. History teaches you another. Philosophy stretches different muscles. Psychology reveals blind spots. The value is in the combination.</p>
<p><strong>Apply what you read.</strong> Reading without application is entertainment. Test the ideas. See if they hold up. Discard what does not work and keep what does.</p>
<p><strong>Make it daily.</strong> Fifteen minutes a day compounds to over 90 hours a year. That is several books. Consistency beats volume.</p>
<h2>The Bottom Line
    </h2><p>Reading is the lowest-cost, highest-return investment available. A $15 book can contain insights that took an author decades to develop. There is no other asset class with that kind of asymmetry.</p>
<p>The skeptics who say reading cannot make you money are not describing reality. They are describing their own failure to experience what reading does to a mind over years and decades. Do not take advice from people who do not read.</p>
<p>Start today. Let it compound.</p>
<hr>
<h2>Related Reading on TMFNK
    </h2><p>This site exists because of the conviction that reading broadly makes life better. Here are related pieces that expand on the same themes:</p>
<p><strong>On investing and financial thinking:</strong></p>
<ul>
<li><a href="https://www.tmfnk.com/read/articles/three-investment-websites/" >Three Websites That Reveal Investment Advantages</a>: tools and data sources for smarter investing</li>
<li><a href="https://www.tmfnk.com/read/articles/average-is-all-you-need/" >The Magic of Average: Why LLMs Make Simple the New Powerful</a>: why consistency beats complexity</li>
<li><a href="https://www.tmfnk.com/read/articles/content-with-crumbs/" >Content With Crumbs: Finding Enough in a World of More</a>: on being satisfied with what you have</li>
<li><a href="https://www.tmfnk.com/read/articles/howard-marks-on-risk/" >Howard Marks on Risk</a>: risk awareness as a reading habit</li>
<li><a href="https://www.tmfnk.com/read/articles/compounding-magic/" >Compounding Magic: How Small Investments Create Massive Wealth</a>: the math behind compounding, financial and intellectual</li>
</ul>
<p><strong>On tools and resources for learning:</strong></p>
<ul>
<li><a href="https://www.tmfnk.com/use/tools/50-useful-websites/" >50 Useful Websites</a>: a curated list of online resources</li>
<li><a href="https://www.tmfnk.com/use/tools/awesome-stats-articles/" >Awesome Statistics Resources</a>: free resources for understanding data</li>
<li><a href="https://www.tmfnk.com/use/tools/free-tools/" >Free Tools</a>: no-cost software and services worth knowing</li>
<li><a href="https://www.tmfnk.com/use/tools/project-nomad/" >Project Nomad: Digital Nomad Tools</a>: tools for location-independent work</li>
<li><a href="https://www.tmfnk.com/use/tools/defuddle/" >Defuddle: Extract Clean Content from Any Web Page</a>: read articles without clutter</li>
<li><a href="https://www.tmfnk.com/use/tools/learning-opportunities/" >Learning Opportunities: Curated Courses and Resources</a>: where to learn anything online</li>
<li><a href="https://www.tmfnk.com/use/tools/how-to-prompt-with-ai-for-free/" >How to Prompt with AI for Free</a>: using AI as a reading companion</li>
</ul>
<p><strong>On reading workflows and knowledge management:</strong></p>
<ul>
<li><a href="https://www.tmfnk.com/use/tutorials/how-to-use-obsidian-and-ai-to-run-your-life/" >How to Use Obsidian and AI to Run Your Life</a>: a personal knowledge management system</li>
<li><a href="https://www.tmfnk.com/use/tools/obsidian-agent-client/" >Obsidian Agent Client: AI Meets Your Notes</a>: connecting AI to your reading notes</li>
<li><a href="https://www.tmfnk.com/use/projects/notebooklm-knowledge-production-system/" >NotebookLM: A Knowledge Production System</a>: Google&rsquo;s AI notebook for research</li>
<li><a href="https://www.tmfnk.com/use/tutorials/how-to-extract-ai-chats/" >How to Extract AI Chats</a>: saving and organizing AI conversations</li>
</ul>
<p><strong>On finding books to read:</strong></p>
<ul>
<li><a href="https://www.tmfnk.com/use/tutorials/where-to-find-free-books-online/" >Where to Find Free Books Online</a>: legally free books across the web</li>
<li><a href="https://www.tmfnk.com/use/tutorials/convert-audiobook-to-ebook/" >Convert Any Audiobook to eBook</a>: a workflow for when you prefer text</li>
</ul>
<p><strong>On the broader context:</strong></p>
<ul>
<li><a href="https://www.tmfnk.com/enjoy/travel/guide-world/" >Guide World: Travel as Education</a>: how travel, like reading, broadens perspective</li>
</ul>
<hr>
<h2>Sources
    </h2><ol>
<li><strong><a href="https://literacytrust.org.uk/research-services/research-reports/reading-and-financial-capability-exploring-relationships" target="_blank" rel="noopener">National Literacy Trust</a>.</strong> &ldquo;Reading and financial capability: exploring the relationships.&rdquo; March 29, 2019.</li>
<li><strong><a href="https://theinvisiblementor.com/people-who-read-business-books-make-more-money" target="_blank" rel="noopener">The Invisible Mentor</a>.</strong> &ldquo;People Who Read Business Books Make More Money?&rdquo;</li>
<li><strong><a href="https://www.wealest.com/articles/read-for-wealth" target="_blank" rel="noopener">Wealest</a>.</strong> &ldquo;The Power Of Reading In Wealth Creation: Ideas From Naval Ravikant, Charlie Munger, and W. Buffett.&rdquo;</li>
<li><strong><a href="https://www.thebankhere.com/blog/post/how-reading-can-improve-your-financial-well-being" target="_blank" rel="noopener">Fairfax State Savings Bank</a>.</strong> &ldquo;How Reading Can Improve Your Financial Well Being.&rdquo; January 23, 2018.</li>
<li><strong><a href="https://www.blackpoolgrand.co.uk/famous-quotes-about-reading" target="_blank" rel="noopener">Blackpool Grand Theatre</a>.</strong> &ldquo;Famous Quotes About Reading.&rdquo; March 1, 2021.</li>
<li><strong><a href="https://todayinsci.com/QuotationsCategories/R_Cat/Reading-Quotations.htm" target="_blank" rel="noopener">Today in Science History</a>.</strong> &ldquo;Reading Quotes (136 quotes).&rdquo;</li>
<li><strong>Pew Research Center.</strong> &ldquo;Lifelong Learning and Technology.&rdquo; 2016.</li>
<li><strong>Bersin &amp; Associates.</strong> &ldquo;How Executives Stay Informed.&rdquo; Report on executive reading habits.</li>
<li><strong>U.S. Department of Labor.</strong> Survey by Yahoo! Chief Solutions Officer Tim Sanders and Business Majors (cited in multiple sources).</li>
</ol>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Eastern Architecture: Prehistoric Asia with Professor Ron Lewcock</title><link>https://www.tmfnk.com/see/videos/eastern-architecture-prehistoric-asia-professor-ron-lewcock/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/see/videos/eastern-architecture-prehistoric-asia-professor-ron-lewcock/</guid><description>Professor Ron Lewcock traces Asian architecture from prehistoric caves to communal longhouses, covering Malta's temple complexes, the megaron, Hakka roundhouses, and the symbolic language of early buildings.</description><content:encoded><![CDATA[
<p>Professor Ron Lewcock gave these as part of the same Archnet series as the China lectures. They cover the deep background: what people built before there were written records, and what those structures tell us about how humans thought about shelter, community, and symbolism.</p>
<p><strong>Part 1:</strong> <a href="https://www.youtube.com/watch?v=gzJeNMDGe5E&amp;t=10s&amp;ab_channel=Archnet" target="_blank" rel="noopener">YouTube</a> | <strong>Part 2:</strong> <a href="https://www.youtube.com/watch?v=ypKRFeQ0EBs&amp;ab_channel=Archnet" target="_blank" rel="noopener">YouTube</a> | <a href="https://next.archnet.org/collections/1773" target="_blank" rel="noopener">Full series</a></p>
<hr>
<h2>Part 1: Caves, Temples, and the Birth of Architecture
    </h2><p>Lewcock starts with theory. He draws on Umberto Eco&rsquo;s work on how human cognition relates to architectural form. The idea: architecture is not just a technical progression. It is a manifestation of how humans think and conceptualize space. This is the lens for the whole lecture.</p>
<p><strong>The cave as the first building.</strong> Early humans discovered shelter in natural caves. That is obvious. What matters is the cognitive leap that followed: the moment someone understood the difference between &ldquo;inside space&rdquo; and &ldquo;outside space.&rdquo; Lewcock argues this was the birth of architectural consciousness. The concept of bounded, protected space distinct from the natural environment.</p>
<p><strong>Malta&rsquo;s temples.</strong> These are the oldest known man-made ceremonial roofed buildings. They date to 3200 BC: 500 years older than the Egyptian pyramids, significantly older than Stonehenge. Lewcock describes them as &ldquo;man-made caves&rdquo;: they translate the natural cave concept into built form using stone vaulting. The design is striking: a facade resembling a cliff face, internal chapels arranged in a cruciform plan, earth-covered domes. Lewcock interprets the floor plan as a symbolic representation of female anatomy, linking the structures to an Earth Mother goddess cult.</p>
<p><strong>The megaron.</strong> From Malta, the lecture moves to the megaron, a basic architectural form that influenced Mediterranean and Asian building for thousands of years. Lewcock uses Gottfried Semper&rsquo;s framework of the four elements of architecture (hearth, plinth, roof, walls) to show how the megaron evolved from the cave concept. It started as a simple domestic structure in ancient Greece and Turkey around 2700 BC, then scaled up into palaces and eventually Greek temples. The pattern holds: religious buildings take their form from ordinary houses.</p>
<p><strong>Vertical caves.</strong> Not all early shelters were horizontal caves. Lewcock covers pit dwellings entered from above, dating to 40,000 BC in southern Russia. Some were lined with mastodon bones. The tradition survives today in parts of Pakistan and Afghanistan, where people still live in homes entered through roof-level openings.</p>
<p><strong>Pacific architecture.</strong> Lewcock acknowledges the difficulty of studying traditions without written records. He covers stone men&rsquo;s houses, ceremonial platforms, and standing stones across Pacific islands. The material is necessarily speculative but raises real questions about how complex societies developed without writing.</p>
<p><strong>The circle as sacred form.</strong> Lewcock traces how the circle came to represent divinity, royalty, and cosmic order across cultures. Persian circular towns, Chinese moon gates, Buddhist stupas. The same form shows up everywhere, suggesting something universal in how humans symbolically represent the divine.</p>
<p><strong>Sacred mountains.</strong> The lecture ends with how the concept of sacred mountains shaped religious architecture across Asia. Mesopotamian ziggurats, Southeast Asian stupas, Chinese pagodas, Japanese temples; all are essentially artificial mountains. They mark sacred sites, demonstrate devotion, and establish visual dominance over flat landscapes. The continuity across cultures is striking.</p>
<hr>
<h2>Part 2: Hakka Roundhouses, Longhouses, and the Architecture of Community
    </h2><p><strong>The symbolic language of buildings.</strong> Part 2 opens with more theory. Lewcock argues that architecture, like language, consists of symbolic concepts. Umberto Eco again, plus Carl Jung on archetypes. The point: scholarship about prehistoric buildings is interpretation, not science. You have to recognize your own biases when looking at structures from cultures thousands of years removed.</p>
<p><strong>Hakka roundhouses.</strong> The most vivid example in this lecture is the circular communal dwellings of the Hakka people in China, built about 600 years ago. These are massive: some housed hundreds of people. The circular form served multiple purposes. Social cohesion: everyone faced inward. Mutual protection: the Hakka were migrants, outsiders who needed defense. And divine symbolism: the circle was believed to offer spiritual protection.</p>
<p>The typical layout: a central courtyard for communal activities, dwelling units around the perimeter, one or two entrances, three or four stories, and a hall of ancestors for clan worship.</p>
<p>Lewcock challenges the common narrative that these were primarily defensive. He argues the spiritual function may have been more important. Interestingly, the Hakka started building rectangular versions in the last 200 years, possibly assimilating into broader Chinese culture where rectangles represented human order. But they kept the same organizational principles.</p>
<p><strong>Southeast Asian longhouses.</strong> The lecture then moves to the longhouses of Borneo and Vietnam. These were raised 10 to 15 feet above ground to deal with tropical dampness, with animals and storage underneath. Housing units lined one side of an internal &ldquo;street.&rdquo; The opposite side was open-air space for drying clothes and manufacturing. Senior members lived in the center, the most protected section. Junior members got the more vulnerable ends. The structures could be extended as the community grew.</p>
<p>The Vietnamese longhouses had a clever roofing innovation. They switched from thatch to fired terracotta tiles. Not for insulation or rain protection, thatch is good at those. The reason was earthquake resistance. The heavy tiles created inertia that kept the building stable during seismic movement.</p>
<p><strong>Evolution of social structure.</strong> Lewcock traces how buildings shrank as social organization changed. Clan longhouses held 200 to 2,000 people. Extended family houses held 10 to 100. Nuclear family houses held 15 to 20 (still large by modern standards). The same pattern shows up worldwide, from prehistoric Europe to the Americas.</p>
<p><strong>Managing outsiders.</strong> Early Asian dwellings managed social boundaries through space. Insiders (clan or tribe members) entered inner reception areas. Outsiders were received on separate decks or platforms. In Bangkok&rsquo;s royal buildings, this became extreme: royalty sat on raised platforms while visitors stayed at lower levels.</p>
<p><strong>Foundation columns.</strong> In some Southeast Asian houses, two special columns flanked the master bed. These were the &ldquo;foundation columns&rdquo; of the entire house, providing symbolic protection for the family. A small detail, but it shows how even practical structural elements carried meaning.</p>
<hr>
<p>These lectures cover ground that is easy to overlook if you focus on monumental architectural history. Lewcock&rsquo;s argument is that the cave, the roundhouse, the longhouse; these are not primitive precursors to real architecture. They are where the ideas that later produced the Forbidden City and Angkor Wat first took shape.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Eastern Architecture: China with Professor Ron Lewcock</title><link>https://www.tmfnk.com/see/videos/eastern-architecture-china-professor-ron-lewcock/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/see/videos/eastern-architecture-china-professor-ron-lewcock/</guid><description>A two-part lecture series by Professor Ronald Lewcock on Chinese architecture, covering traditional domestic design, philosophical foundations, Taoist gardens, urban planning, and the Forbidden City.</description><content:encoded><![CDATA[
<p>Professor Ron Lewcock gave these two lectures as part of Archnet&rsquo;s Eastern Architecture series. Together they cover Chinese architecture from the layout of a single room in Beijing to the planning of the Forbidden City.</p>
<p><strong>Part 1:</strong> <a href="https://www.youtube.com/watch?v=7gEvOH6edbs&amp;t=11s&amp;ab_channel=Archnet" target="_blank" rel="noopener">YouTube</a> | <strong>Part 2:</strong> <a href="https://www.youtube.com/watch?v=PG3-3PAAD10&amp;ab_channel=Archnet" target="_blank" rel="noopener">YouTube</a> | <a href="https://next.archnet.org/collections/1773" target="_blank" rel="noopener">Full series</a></p>
<hr>
<h2>Part 1: The House, the Philosophy, the City
    </h2><p><strong>The Beijing house.</strong> Lewcock starts with a well-to-do house in Beijing as it looked in 1983, before modernization took over. High walls all around, one entrance with a bend in it. The bend was deliberate: evil spirits travel in straight lines. Inside the entrance, a shadow wall blocked them further. Mirrors above or behind it reflected anything that got through. This is the level of detail the lecture operates at.</p>
<p>The central courtyard faced south for winter sun and to avoid the &ldquo;direction of darkness.&rdquo; Rooms were arranged by hierarchy: main hall for senior family members and the ancestral shrine, side halls for married children, transverse courtyards for servants and deliveries.</p>
<p>Then there was the cold problem. Rice paper screens let in light but provided no insulation. The solution was silk. People wore seven or eight layers of silk clothing. Silk production in China dates to about 1000 BCE, and this was its practical payoff: multiple thin layers trapping air. Floors were stone, so seating platforms had hot stones underneath for radiant heat.</p>
<p>The heavy tile roofs that are nearly universal in traditional Chinese architecture did double duty. They insulated against both summer heat and winter cold, and their mass helped stabilize buildings during earthquakes by creating inertia that resisted seismic movement.</p>
<p><strong>Three philosophies, one building.</strong> This is the part I found most interesting. Three traditions coexisted and pulled in different directions:</p>
<ul>
<li>Confucianism demanded order, hierarchy, symmetry, and ritual progression through space. The house was a diagram of social relationships.</li>
<li>Taoism valued harmony with nature, flexibility, and individual transcendence. It was the counterweight to all that Confucian structure.</li>
<li>Buddhism arrived in the first century CE and added pagodas, meditation spaces, and an emphasis on enlightenment.</li>
</ul>
<p>There is a Chinese saying: &ldquo;a Confucianist by day and a Taoist by night.&rdquo; You respected order during working hours. You cultivated your relationship with nature during your own time. The architecture reflects both.</p>
<p>Traditional Chinese buildings used only vertical and horizontal structural members. No diagonal bracing at all. This is unusual compared to Western construction, and it made curved roofs possible. The curve became prominent around the 6th century.</p>
<p>The bracketing system (dougong) is what makes Chinese roofs look the way they do. Simple corbels evolved into multi-level brackets supporting the tile roofs. Over time they became more decorative, but they started as a structural fix for distributing weight.</p>
<p>Wooden columns never touched the ground directly. They sat on stone platforms to prevent rot. Cross-braced horizontal and vertical members sat above.</p>
<p>The first lecture ends with Kaifeng, the Song Dynasty capital. It is known through the 12th-century scroll &ldquo;Along the River During the Qingming Festival.&rdquo; After the Tang Dynasty collapsed and order returned in the 10th century, Kaifeng grew fast. The old walled feudal city gave way to open commercial streets. The scroll shows waterways, camel caravans from the Silk Road, and public health infrastructure like standardized wells.</p>
<hr>
<h2>Part 2: Gardens, Cities, and the Forbidden City
    </h2><p>If the Confucian house was about order, the Taoist garden was about getting out of it. The poet Dao Chin wrote about moving &ldquo;beyond the hall of ancestors into nature&rdquo; in a poem called &ldquo;Walking Out of the Cage.&rdquo; He designed his house with a garden behind it for exactly this purpose.</p>
<p>Chinese gardens are not reproductions of nature. They are symbolic miniatures. A five-foot pile of rocks represents a mountain. A small pool represents a lake. Rocks were imported from as far as Canton and treated as family heirlooms. Paths were carefully planned to take visitors through a sequence of views and experiences. Pavilions provided places for meditation. The gardens also hosted poetry competitions where losers had to drink wine.</p>
<p>The transition from house to garden was marked by the doorways changing shape: rectangular in the Confucian house, circular or free-form in the Taoist garden. Order gave way to nature.</p>
<p><strong>The walled city.</strong> Chinese urban planning was the Confucian house scaled up. Cities were organized around walled blocks with a single entrance on the south side, creating self-contained communities. Chang&rsquo;an (modern Xi&rsquo;an), the Tang Dynasty capital, had a south wall more than five miles long. The city was laid out on a strict grid with two major markets distributed throughout. City walls were 50 feet wide at the top, wide enough for two chariots to pass at full speed in opposite directions.</p>
<p>By the 12th century, the old enclosed block system began breaking down as commercial activity grew. Shops opened onto streets. Houses appeared above shops. The city transformed.</p>
<p><strong>The Forbidden City.</strong> Beijing&rsquo;s imperial complex takes the Confucian house layout and blows it up to city scale. A strict north-south axis. Three major gateways. The Hall of Supreme Harmony as the central focus. An artificial mountain at the north end for protection. Red and gold as imperial colors. Numerical symbolism tied to seasons, months, and cosmology.</p>
<p>The Temple of Heaven complex, south of the Forbidden City, switches from rectangular to circular forms to represent heaven. The emperor performed rituals here to welcome the new year and ensure good harvests.</p>
<p>Japan preserved some of the best surviving examples of early Chinese Buddhist architecture. Their temples have been maintained and repaired over centuries, with wooden elements replaced as needed while keeping the original design. Korea adopted Chinese principles but kept things simpler, with more emphasis on feng shui and less Buddhist influence.</p>
<hr>
<p>What I took away from these lectures: Chinese architecture is a culture working out how to make its beliefs physical. Every decision, from the curve of a roof to the placement of a rock, carries that history. Worth watching if you want to understand why Chinese buildings look the way they do, or if you want to understand China itself.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Episode 399: How Elon Works</title><link>https://www.tmfnk.com/listen/podcasts/founders-episode-399-how-elon-works/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/founders-episode-399-how-elon-works/</guid><description>David Senra extracts Elon Musk's core operating principles from Walter Isaacson's biography: the Algorithm, first principles thinking, maniacal urgency, and radical simplification.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Founders</li>
<li><strong>Host:</strong> David Senra</li>
<li><strong>Episode:</strong> <a href="https://podcasts.apple.com/us/podcast/founders/id1141877104?i=1000723471754" target="_blank" rel="noopener">399 — How Elon Works</a></li>
<li><strong>Listen:</strong> <a href="https://www.youtube.com/watch?v=aStHTTPxlis&amp;t=1s&amp;ab_channel=FoundersPodcast" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>David Senra spent 60 hours reading and rereading Walter Isaacson&rsquo;s 615-page biography of Elon Musk. He extracted the operating principles Musk has applied across Zip2, PayPal, SpaceX, Tesla, The Boring Company, Neuralink, and Twitter/X.</p>
<hr>
<h2>The Algorithm
    </h2><p>Musk&rsquo;s five-step problem-solving method. He repeats it constantly, to the point where his executives mouth the words along with him.</p>
<ol>
<li><strong>Question every requirement.</strong> Each must come with the name of the person who made it. Never accept requirements from departments.</li>
<li><strong>Delete any part or process.</strong> If you do not delete at least 10%, you have not deleted enough.</li>
<li><strong>Simplify and organize.</strong> Only after deletion. Do not optimize things that should not exist.</li>
<li><strong>Accelerate cycle time.</strong> Speed comes after simplification.</li>
<li><strong>Automate.</strong> Last. Musk made the mistake of automating before deleting.</li>
</ol>
<hr>
<h2>First Principles
    </h2><p>Break problems down to physics. Calculate the idiot index: how much more the finished product costs than its raw materials. If the ratio is high, you can reduce it dramatically. A supplier quoted $120,000 for a part. Musk&rsquo;s team built it for $5,000.</p>
<p>&ldquo;The only immutable requirements are those decreed by the laws of physics.&rdquo;</p>
<hr>
<h2>Maniacal Urgency
    </h2><p>&ldquo;Every day we&rsquo;re slower to achieve our goals is a day of missing out on that money.&rdquo; Musk sets deadlines that seem impossible, then makes them happen. He makes roughly 100 command decisions a day walking the factory floor. At least 20% are wrong. If he does not make them, the company dies.</p>
<hr>
<h2>Frontline General
    </h2><p>Go to the problem. Physically. Musk moves into factories during critical production periods. He walks to the red lights on the monitor and fixes them. &ldquo;All technical managers must have hands-on experience.&rdquo;</p>
<hr>
<h2>Radical Integration
    </h2><p>Control everything. Vertical integration. Bring manufacturing in-house. Do not separate design from engineering from production. &ldquo;Designers had to feel the immediate pain if something they devised was hard to engineer.&rdquo;</p>
<hr>
<h2>Showmanship
    </h2><p>Prove capabilities through spectacle. When Daimler executives visited, Musk surprised them with a working car rather than a PowerPoint. He frames everything as epoch-making. &ldquo;Being a space-faring civilization and making science fiction not fiction is one of those things that inspire you.&rdquo;</p>
<hr>
<h2>Cost Obsession
    </h2><p>The word &ldquo;cost&rdquo; appears 158 times in Isaacson&rsquo;s book. Musk is maniacal about it. He constantly calculates the idiot index. He compares costs across industries. He once told his team carbon fiber costs could be reduced because he knew what SpaceX paid for similar materials. &ldquo;If someone tells you this is hard, they are full of shit.&rdquo;</p>
<hr>
<h2>The Takeaway
    </h2><p>Senra&rsquo;s point: Musk&rsquo;s superpower is not genius. It is the relentless application of core principles over decades. The Algorithm, first principles, simplification — these are repeatable. The hard part is doing them every day, decision after decision, without stopping.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>How 80,000 Companies Build with AI — Asha Sharma (Microsoft)</title><link>https://www.tmfnk.com/listen/podcasts/lennys-podcast-how-80000-companies-build-with-ai-asha-sharma/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/lennys-podcast-how-80000-companies-build-with-ai-asha-sharma/</guid><description>Microsoft's CVP of AI Platform on products as living organisms, the death of org charts, why agents will outnumber employees by 2026, and season-based planning.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Lenny&rsquo;s Podcast</li>
<li><strong>Host:</strong> Lenny Rachitsky</li>
<li><strong>Guest:</strong> Asha Sharma — Corporate Vice President of Microsoft&rsquo;s AI Platform (ex-COO Instacart, ex-VP Product Meta)</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/lennys-podcast-product-career-growth/id1627920305?i=1000723871060" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=J9UWaltU-7Q" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Asha Sharma oversees AI infrastructure, foundation models, and agent tool chains at Microsoft. Her vantage point covers 15,000+ customers building AI agents. Here is what she sees.</p>
<h2>Product as Organism
    </h2><p>Products are no longer static artifacts you ship and maintain. They are living organisms that improve with every interaction. The KPI is the metabolism of the product team — how fast they can ingest data, process rewards, and produce outcomes. This is the new IP of every company.</p>
<h2>The Three Stages of AI Adoption
    </h2><ol>
<li><strong>AI Fluency</strong> — everyone in the org becomes fluent using copilots and AI tools</li>
<li><strong>Process optimization</strong> — apply AI to existing processes (e.g., fraud resolution from 15 days to 10)</li>
<li><strong>Growth inflection</strong> — AI drives customer experience and new product concepts</li>
</ol>
<p>Companies that fail skip straight to stage three without building the foundation.</p>
<h2>Agents Will Outnumber Employees
    </h2><p>As the marginal cost of good output approaches zero, demand for output goes exponential. The only way to scale is with agents. The org chart becomes the work chart — task allocation replaces reporting hierarchy. You just do not need as many layers.</p>
<h2>GUIs Are Dying
    </h2><p>Text streams connect better with LLMs than graphical interfaces. The future of products is composability, not the canvas. Product builders need to rewire their thinking away from UI design and toward how products compose and interact.</p>
<h2>Post-Training Is the New Pre-Training
    </h2><p>Once a model hits 30 billion parameters, the capex for pre-training no longer makes sense compared to fine-tuning existing models. The competitive advantage shifts to proprietary data and reinforcement learning.</p>
<h2>The Full Stack Builder
    </h2><p>The silos between PM, engineering, and design are dissolving. Success depends on mastering the loop — cost, rewards, system design, UX — not the lane. Full stack builders eliminate handoffs and move faster.</p>
<h2>Season-Based Planning
    </h2><p>Roadmapping is impossible when foundational technology changes quarterly. Identify the current season (prototyping, models, reasoning, agents). Set loose quarterly OKRs. Build slack for the unexpected.</p>
<h2>Optimism Is Renewable
    </h2><p>Sharma&rsquo;s biggest lesson from Satya Nadella: his ability to generate energy and renew everyone&rsquo;s dedication to the mission is what makes the culture work. In a field this volatile, optimism is a deliberate choice.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Side Hustle King: 3 Easy Businesses Anyone Can Start</title><link>https://www.tmfnk.com/listen/podcasts/big-deal-side-hustle-king-3-easy-businesses/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/big-deal-side-hustle-king-3-easy-businesses/</guid><description>Chris Koerner on finding overlooked 'sleeper businesses' — front porch decorating, appliance rental, and HVAC coil cleaning — plus the mindset required to start them.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Big Deal by Codie Sanchez</li>
<li><strong>Host:</strong> Codie Sanchez</li>
<li><strong>Guest:</strong> Chris Koerner — serial entrepreneur with 75+ businesses</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/bigdeal/id1736593333?i=1000723903607" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=kXo7UFnltK8" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Chris Koerner has started over 75 businesses. He specializes in what he calls &ldquo;sleeper businesses&rdquo; — cash-flowing, non-venture-backed companies that almost anyone can start with minimal capital. Here are his top three.</p>
<hr>
<h2>1. Front Porch Decorating
    </h2><p>A woman named Heather built a million-dollar business buying wholesale pumpkins and decorating porches. She charges $600 to $1,300 per installation. Seasonal decorations are highly visual and shareable on social media, creating free marketing. The model works for Christmas, flowers, and other seasons too.</p>
<hr>
<h2>2. Appliance Rental
    </h2><p>A guy buys used washers and dryers on Facebook Marketplace (often free from people moving), then rents them to apartment dwellers for $100 to $200 a month. These are people who have hookups but do not want to buy appliances. Minimal startup capital needed. Just a truck and a system.</p>
<hr>
<h2>3. HVAC Coil Cleaning
    </h2><p>HVAC companies hate cleaning coils as part of their maintenance contracts. It requires water, chemicals, and awkward setup. One person built a $500,000 to $600,000 a year business just cleaning coils for grocery store HVAC units. He says he never loses a customer.</p>
<hr>
<h2>The Formula
    </h2><p>Find a business. Find the things they hate doing. Unbundle that into its own service.</p>
<p>Koerner scraped every tree trimming business in Houston, called them up, and asked: would you outsource stump grinding if you could? One person made $300,000 in his first year doing exactly that.</p>
<hr>
<h2>Businesses to Avoid
    </h2><ul>
<li><strong>Third-party logistics</strong> — $400K monthly revenue, zero profit</li>
<li><strong>House cleaning</strong> — too many ways to screw up (hair on the floor, scuffed baseboard)</li>
<li><strong>Custom home building</strong> — too many stakeholders for the margins</li>
</ul>
<hr>
<h2>The Mindset
    </h2><p>Constraints equal creativity. An insane bias for action matters more than capital. Koerner was rejected 24,000 times during a two-year mission in Hungary. That experience built resilience that made entrepreneurship feel easy.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>39 Brutal Truths I Know at 39 and Wish I Knew at 20</title><link>https://www.tmfnk.com/listen/podcasts/big-deal-codie-sanchez-39-brutal-truths/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/big-deal-codie-sanchez-39-brutal-truths/</guid><description>Codie Sanchez celebrates her 39th birthday with 39 hard-won lessons on money, relationships, business, and personal growth — from choosing your hard to the power of urgency.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Big Deal by Codie Sanchez</li>
<li><strong>Host:</strong> Codie Sanchez</li>
<li><strong>Guest:</strong> Solo episode (39th birthday)</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/bigdeal/id1736593333?i=1000723331279" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=qeB4irQ-PnE" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Codie Sanchez shares 39 brutal truths she learned by 39. Here are the best ones.</p>
<hr>
<h2>Choose Your Hard
    </h2><p>&ldquo;Being poor is hard. Getting rich is hard. Every choice is hard. If you don&rsquo;t choose your hard, your hard will choose you.&rdquo; This is the core philosophy. Life is hard either way. The only question is which hard you face.</p>
<hr>
<h2>Amateurs vs. Professionals
    </h2><p>&ldquo;Amateurs want to do what they love. Pros learn to love what it takes.&rdquo; The discipline to do what is necessary, even when it is not enjoyable, separates those who succeed from those who do not.</p>
<hr>
<h2>Weaponized Distraction
    </h2><p>&ldquo;We have weaponized distraction against ourselves. We have turned silence into the enemy.&rdquo; Be bored more often. Turn off your phone. That is when your brain turns on.</p>
<hr>
<h2>Urgency Is the Greatest Muscle
    </h2><p>&ldquo;Decrease the time between having an idea and getting it done.&rdquo; Sanchez waited a year to take her Goldman Sachs job. That delay cost her six figures. Momentum compounds.</p>
<hr>
<h2>Working Smart Requires Working Hard First
    </h2><p>&ldquo;Working smarter, not harder, is a beautiful lie. You will not know how to work smart until you have worked very hard for a irrationally long time.&rdquo;</p>
<hr>
<h2>Complexity Sounds Smart. Simplicity Makes Money.
    </h2><p>The ability to distill complex problems to their essence is more valuable than being able to add complexity. Simple beats sophisticated in the market.</p>
<hr>
<h2>Reputation Is Fragile
    </h2><p>&ldquo;The smartest people I know obsess on their reputations. Do not play short-term games with your name.&rdquo; Warren Buffett: lose me a dollar and I forget. Lose me reputation and you are gone.</p>
<hr>
<h2>Not Too Old, Just Too Comfortable
    </h2><p>Sanchez did not marry until 33. Did not make content until 35. Did not start her podcast until 37. At 30 she thought she had peaked. At 39 she knows it&rsquo;s just starting.</p>
<hr>
<h2>The Keeper Test
    </h2><p>A simple question for evaluating people: if they told you they were leaving for a similar job, would you fight to keep them? If not, let them go.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>6 Daily Habits That Expose Your Fake Values with Deepak Chopra</title><link>https://www.tmfnk.com/listen/podcasts/diary-of-a-ceo-deepak-chopra-6-daily-habits/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/diary-of-a-ceo-deepak-chopra-6-daily-habits/</guid><description>Steven Bartlett and Deepak Chopra explore the nature of suffering, identity, avatars, and six daily habits for authentic living.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> The Diary of a CEO</li>
<li><strong>Host:</strong> Steven Bartlett</li>
<li><strong>Guest:</strong> Deepak Chopra — physician, author, spiritual teacher</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/the-diary-of-a-ceo-with-steven-bartlett/id1291423644?i=1000723988410" target="_blank" rel="noopener">Apple Podcasts</a></li>
</ul>
<hr>
<p>One of the most replayed moments from the Diary of a CEO catalog. Steven Bartlett and Deepak Chopra cover the nature of suffering, the difference between your true self and your avatar, and six daily habits that reveal whether you are living by your real values or your stated ones.</p>
<hr>
<h2>Suffering Is Resistance
    </h2><p>Chopra defines stress simply: resistance to existence in the moment. The event itself is not the cause of suffering. The resistance to it is.</p>
<p>We have imagination. The worst use of imagination is stress. The best use is creativity. The choice is moment to moment.</p>
<hr>
<h2>You Are Not Your Avatar
    </h2><p>Chopra argues that in the age of social media, people increasingly confuse themselves with their avatars — the curated identity they project. The battle is between avatars wanting importance. The solution is not to win that battle but to recognize you are not your avatar at all.</p>
<p>The observation is not new but Chopra states it cleanly: &ldquo;We don&rsquo;t know who we are. You confuse yourself with the avatar.&rdquo;</p>
<hr>
<h2>Creativity as Freedom
    </h2><p>Chopra describes creativity as a disruption in the algorithm of conditioned responses. Every moment you can repeat the past or pioneer something new. Real creativity is not incremental improvement. It is a death of old context and the birth of new meaning.</p>
<hr>
<h2>Six Daily Habits
    </h2><p><strong>1. Prioritize sleep.</strong> Lack of sleep is the number one predictor of premature death from cardiovascular disease. It impairs creativity, increases inflammation, and contributes to Alzheimer&rsquo;s risk.</p>
<p><strong>2. Quiet the mind.</strong> Meditation, reflection, sitting quietly and watching your breath. Practices that cultivate the awareness behind your thoughts rather than the thoughts themselves.</p>
<p><strong>3. Exercise regularly.</strong></p>
<p><strong>4. Mind-body coordination.</strong> Yoga, tai chi, qigong, martial arts. These activate the parasympathetic nervous system and create self-regulation in a way that regular exercise does not.</p>
<p><strong>5. Cultivate healthy environments.</strong> Toxic relationships cause physical toxicity. Your social and physical surroundings shape your well-being more than most people acknowledge.</p>
<p><strong>6. Eat properly.</strong> Avoid processed food, chemicals, antibiotics, hormones. Eat organic, farm-to-table, with maximum plant diversity.</p>
<hr>
<h2>Awe as the Healthiest Emotion
    </h2><p>Chopra says the healthiest emotion is not love, compassion, or joy. It is awe. Wonder. Being surprised by the fact that you exist and are aware that you exist. He connects this to the innocence that children have and adults lose.</p>
<p>His prescription: play. Not drama, play. When the musician and the music become one, that is transcendence. That is joy.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Emma Grede: From East London to Billion-Dollar Brands</title><link>https://www.tmfnk.com/listen/podcasts/the-mel-robbins-podcast-emma-grede/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/the-mel-robbins-podcast-emma-grede/</guid><description>Mel Robbins talks with Emma Grede about building SKIMS, Good American, and Safely — and the philosophy of excellence, radical responsibility, and the Rule of Thirds that got her there.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> The Mel Robbins Podcast</li>
<li><strong>Host:</strong> Mel Robbins</li>
<li><strong>Guest:</strong> Emma Grede — founder of SKIMS, Good American, Safely; Shark Tank investor</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/the-mel-robbins-podcast/id1646101002?i=1000724065200" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=jImgnkT-YNM&amp;list=PLhW2xUEb-B-Y92Q1wVWw6TyMNr4idD-yv&amp;ab_channel=MelRobbins" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Emma Grede grew up in East London&rsquo;s Plaistow neighborhood, raised by a single Jamaican immigrant mother. She was severely dyslexic and dropped out of college. Today she is behind three billion-dollar brands — SKIMS, Good American, Safely — and is a Shark Tank investor.</p>
<hr>
<h2>How You Do Anything Is How You Do Everything
    </h2><p>Grede&rsquo;s core belief: excellence in small things creates big opportunities. When she made sandwiches in a deli, she made the best sandwich. When she packed clothes in a cupboard, she did it with excellence. People notice, even when you think they are not watching.</p>
<hr>
<h2>Excellence vs. Perfectionism
    </h2><p>She draws a clean distinction. Perfectionism is external, focused on what others will think. Excellence is internal, about whether the effort you put in is good enough for you. Perfectionism is a barrier to excellence.</p>
<hr>
<h2>The Rule of Thirds
    </h2><p>If you are chasing a difficult goal, you will feel great about a third of the time, okay about a third of the time, and terrible about a third of the time. Accepting this prevents you from making permanent decisions based on temporary emotions.</p>
<hr>
<h2>Take Responsibility
    </h2><p>Grede emphasizes self-responsibility over blame. The combination of taking responsibility for yourself and choosing your thoughts carefully will take you further than any amount of talent.</p>
<hr>
<h2>The White Space
    </h2><p>When Grede identified the opportunity for Good American, she saw that most women were massively underserved by the fashion industry. She did not start with a product. She started with a problem.</p>
<hr>
<h2>Energy as a Compass
    </h2><p>&ldquo;If it gives you energy, you are good at it. If it takes your energy away, that is what you are bad at. Make it simple.&rdquo;</p>
<hr>
<h2>On Getting Started
    </h2><p>&ldquo;You cannot think your way into what you want. You cannot wish it. You cannot hope for it. You got to do.&rdquo;</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>7 Popular Life Advice Myths That Keep 99% of People Miserable</title><link>https://www.tmfnk.com/listen/podcasts/the-school-of-greatness-7-popular-life-advice-myths/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/the-school-of-greatness-7-popular-life-advice-myths/</guid><description>Lewis Howes challenges seven widely accepted pieces of life advice — follow your passion, fake it till you make it, never give up — and offers a more realistic path to fulfillment.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> The School of Greatness</li>
<li><strong>Host:</strong> Lewis Howes</li>
<li><strong>Guest:</strong> Solo episode</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/the-school-of-greatness/id596047499?i=1000724556750" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=oYI3chp92Ig" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Lewis Howes pushes back against seven popular life advice tropes that he says keep people stuck. The episode draws on his own journey and insights from guests like Scott Galloway, Dr. Susan David, and Robin Sharma.</p>
<hr>
<h2>Follow Your Passion
    </h2><p>His least favorite piece of advice. Passion as a career often kills the passion. The pressure to monetize transforms something you love into something you resent. Instead, find the intersection of what you are good at, what the world needs, and what you can be paid for. Let passion emerge naturally.</p>
<hr>
<h2>Stay Positive All the Time
    </h2><p>Constant positivity is toxic. Suppressing negative emotions prolongs pain. Emotional agility means acknowledging what you feel without judgment, processing it, and moving through it. Howes draws on his own experience of being taught not to show emotion as a man — a wound that took decades to heal.</p>
<hr>
<h2>Good Things Come to Those Who Wait
    </h2><p>Passive waiting is not patience. Proactive patience combines waiting with consistent action. Communicate your vision, demonstrate value beyond minimum expectations, ask for feedback. Waiting without action is just procrastination.</p>
<hr>
<h2>Everything Happens for a Reason
    </h2><p>Telling someone in pain that everything happens for a reason invalidates their experience. Process the pain first, then look for meaning. Use future hindsight — imagine looking back from years ahead and asking how this challenge shaped you.</p>
<hr>
<h2>Never Give Up
    </h2><p>Persistence can become harmful. Howes shares the story of his sister who quit Ironman training during extreme heat that had already killed two people. Knowing when to quit is as important as knowing when to push. &ldquo;Quitting the wrong thing is how you find the right one.&rdquo;</p>
<hr>
<h2>Fake It Till You Make It
    </h2><p>This undermines authenticity. Howes felt like the dumbest person in every room early in his career. Instead of faking confidence, he led with curiosity. &ldquo;The most interesting person in any room is the most interested person in other people.&rdquo;</p>
<hr>
<h2>Success Equals Happiness
    </h2><p>Achievement looks good but fulfillment feels good. They are not the same. Howes shares his own experience of feeling depressed after accomplishing major goals. The real goal is alignment with your values.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Robert Herjavec: The Mindset That Took a Shark from Poverty to Millions</title><link>https://www.tmfnk.com/listen/podcasts/the-school-of-greatness-robert-herjavec-mindset-poverty-to-millions/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/the-school-of-greatness-robert-herjavec-mindset-poverty-to-millions/</guid><description>Shark Tank's Robert Herjavec on his journey from immigrant poverty to extraordinary wealth — and why sales skills, abundance thinking, and joy mattered more than hard work.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> The School of Greatness</li>
<li><strong>Host:</strong> Lewis Howes</li>
<li><strong>Guest:</strong> Robert Herjavec — Shark Tank investor, founder of cybersecurity companies</li>
<li><strong>Duration:</strong> ~1 hour</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/the-school-of-greatness/id596047499?i=1000722976042" target="_blank" rel="noopener">Apple Podcasts</a></li>
</ul>
<hr>
<p>Robert Herjavec arrived in Canada as an eight-year-old immigrant with nothing. Today he is a Shark Tank investor, a self-made millionaire many times over, and one of the most recognizable business figures in the world. This conversation covers the mindset shifts that made it possible.</p>
<hr>
<h2>Poverty Is a Situation, Not an Identity
    </h2><p>Herjavec never saw himself as poor — only in a poor situation. That distinction shaped everything. If poverty is who you are, you cannot escape it. If it is just a circumstance, you can change it. His mindset was not poverty or scarcity. It was joy.</p>
<hr>
<h2>Sales Skills Are Worth More Than Technical Skills
    </h2><p>Herjavec is a legitimate cybersecurity expert. But he says his wealth came from sales, not from technical knowledge. Markets and people pay for value, not time. They pay for the ability to communicate that value and connect emotionally. &ldquo;People never remember what you say, they remember how you make them feel.&rdquo;</p>
<hr>
<h2>Hard Work Prevents Poverty. It Does Not Create Wealth.
    </h2><p>His father worked two shifts in a factory his whole life, paid off his house, and never had more. Herjavec will never work a day harder than his dad. The difference is not effort. It is learning to work smart — to pivot from selling time to creating value that scales.</p>
<hr>
<h2>The Ferrari Moment
    </h2><p>After years of hard work, Herjavec bought a Ferrari. Then he noticed his neighbor had two Porsches. He realized that working harder was a trap. The path to wealth is not more hours. It is leverage, knowledge, and emotional connection.</p>
<hr>
<h2>Joy as a Foundation
    </h2><p>In 2014, Herjavec hit a period of darkness so severe he contemplated suicide. He found his way back through serving at a homeless mission in Seattle, rediscovering faith and joy. His three truths: family, joy, and empowerment.</p>
<hr>
<h2>The Billionaire Pattern
    </h2><p>Herjavec noticed three things in every billionaire he met: obsessive focus on a specific narrow area, insatiable curiosity, and disciplined application of that curiosity. General knowledge does not get rewarded. Specific knowledge does.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>How to Speak by Patrick Winston</title><link>https://www.tmfnk.com/see/videos/how-to-speak-by-patrick-winston/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/see/videos/how-to-speak-by-patrick-winston/</guid><description>MIT professor Patrick Winston on the mechanics of effective speaking: how to start a talk, structure your arguments, design slides, use props, and leave a lasting impression.</description><content:encoded><![CDATA[
<p>MIT Professor Patrick Winston (who died in July 2019) gave this lecture as part of MIT&rsquo;s How to Speak course. It is about an hour long and covers pretty much everything you need to know about giving a presentation.</p>
<p><a href="https://www.youtube.com/watch?v=Unzc731iCUY&amp;ab_channel=MITOpenCourseWare" target="_blank" rel="noopener">How to Speak by Patrick Winston on MIT OpenCourseWare</a> (63 min)</p>
<hr>
<p>Winston opens with a claim that sounds extreme but has the ring of truth: your success in life is determined by your ability to speak first, your ability to write second, and the quality of your ideas third. In that order. He is not saying ideas do not matter. He is saying a good idea poorly communicated goes nowhere, while a decent idea communicated well can change things.</p>
<p>His formula: Knowledge + Practice + Talent, where Talent is the smallest term. He tells a story about skiing better than Olympic gymnast Mary Lou Retton, despite her being a world-class athlete, because he knew the mountain and had practiced more than she had. The point is obvious once you hear it: speaking is a skill, not a gift.</p>
<hr>
<h2>How to Start
    </h2><p>Do not open with a joke. This is the most common bad advice in public speaking. Jokes set up an adversarial dynamic; the audience hopes you are funny and you hope they laugh. If the joke falls flat, you have lost them before you have said anything substantive.</p>
<p>Instead, open with an <strong>empowerment promise</strong>. Tell the audience what they will know or be able to do by the end of your talk. They are not there for you; they are there for what they can get from you. Make it clear what that is.</p>
<hr>
<h2>The Core Techniques
    </h2><p><strong>Cycling.</strong> About 20 percent of your audience is checked out at any given moment. Not because your talk is bad. That is just how attention works. The solution: say the important thing three times. First introduce it. Then elaborate. Then summarize at the end. By the third pass, even the fogged-out listeners will catch it.</p>
<p><strong>Fences.</strong> Do not let your audience confuse your idea with a similar one. If you are presenting an algorithm called Jones&rsquo;s algorithm that runs in linear time and the audience knows the real Jones&rsquo;s algorithm runs in exponential time, say so explicitly. Build a fence around your idea. This is Jones&rsquo;s. This is not.</p>
<p><strong>Verbal punctuation.</strong> Give your audience landmarks. Say &ldquo;The first problem is&hellip;&rdquo; and &ldquo;The second problem is&hellip;&rdquo; This lets people who tuned out know where to re-engage.</p>
<p><strong>Questioning.</strong> Ask questions that are not too obvious and not too hard. Then wait. Wait up to seven seconds. It feels uncomfortable. It works.</p>
<hr>
<h2>Job Talks vs. Lectures
    </h2><p>Winston draws a sharp distinction between talks that <strong>expose</strong> (job talks, conference presentations) and talks that <strong>inform</strong> (classroom lectures).</p>
<p>For exposition talks, you have roughly <strong>five minutes</strong> to get your message across. In that window you must establish: the problem you are solving, why it matters, why your approach is new and effective, and what you have contributed. If you miss that window, the audience is gone.</p>
<p>For lectures, a chalkboard beats slides. Chalk allows you to pace the material, respond to the audience, and re-engage mirror neurons. When students watch you write, they simulate writing, which helps them learn. That said, slides are fine for lectures if they are well designed. More on that below.</p>
<hr>
<h2>Slide Design
    </h2><p>Most text on a slide is worse than useless. Humans have one language processing center. If the audience is reading your slide, they cannot listen to you. They will do one or the other, and you lose either way.</p>
<p>Winston&rsquo;s rule: cut almost all text. Use large fonts: 35 to 40 point minimum. Slides exist to support you, not to replace you.</p>
<p>He suggests preparing two versions: one for live presentation (minimal text) and one for handouts (with all the detail). The handout version compensates for what you removed from the live version.</p>
<p><strong>No laser pointers.</strong> They force you to turn your back to the audience. Use arrows built into your slides, or a Spotlight-style pointer that highlights on your laptop screen without requiring you to face away.</p>
<hr>
<h2>Props
    </h2><p>Physical objects create memorable moments. Winston demonstrates with a bicycle wheel (following Seymour Papert) to show how problem-solving works. Alan Lazarus once dropped a pendulum with a steel ball to demonstrate conservation of energy; standing right where the ball would hit him if the physics went wrong. Nobody forgot that demonstration.</p>
<p>If you work in distributed systems or cloud computing, props require creativity. But they are worth the effort.</p>
<hr>
<h2>How to End
    </h2><p>End with a <strong>contributions</strong> slide, not a conclusions slide. Conclusions sound like theoretical findings. Contributions sound like concrete achievements.</p>
<p>Do not end by saying &ldquo;thank you.&rdquo; Winston argues this implies the audience only stayed out of politeness. His alternative: end with a benediction, like a political speaker; Chris Christie and Bill Clinton both come up in the lecture as examples of speakers who close with a strong, memorable statement rather than a weak thank you.</p>
<hr>
<h2>Winston&rsquo;s Star
    </h2><p>Winston had a framework for making ideas memorable, which he called the Star:</p>
<ul>
<li><strong>Symbol</strong>: a visual representation</li>
<li><strong>Slogan</strong>: a memorable phrase</li>
<li><strong>Surprise</strong>: something counterintuitive</li>
<li><strong>Salient idea</strong>: a distinctive concept</li>
<li><strong>Story</strong>: a narrative framework</li>
</ul>
<p>He credits his arch learning work&rsquo;s fame to hitting all five. If you are presenting an idea and want people to remember it, check your Star.</p>
<hr>
<p>The lecture is practical in the best sense. It does not tell you to find your inner something. It tells you to say your point three times, to stop using laser pointers, and to put your contributions on the last slide. Then it explains why each of those things works.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Why Getting to $100k Is SO HARD &amp; How to Do It</title><link>https://www.tmfnk.com/listen/podcasts/networth-and-chill-your-rich-bff-first-100k/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/networth-and-chill-your-rich-bff-first-100k/</guid><description>Vivian Tu (Your Rich BFF) on why the first $100,000 is the hardest financial milestone, how compound interest works against you at small balances, and practical strategies to break through.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> Networth &amp; Chill with Your Rich BFF</li>
<li><strong>Host:</strong> Vivian Tu (Your Rich BFF)</li>
<li><strong>Guest:</strong> Solo episode</li>
<li><strong>Duration:</strong> ~27 minutes</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/networth-and-chill-with-your-rich-bff/id1676999261?i=1000725828101" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=tvPJkULjAd0" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Vivian Tu on why reaching your first $100,000 is harder than becoming a millionaire — and exactly how to do it.</p>
<h2>Why $100k Is the Hardest
    </h2><p>Compound interest needs critical mass to work. $1,000 invested at 7% earns $70 in year one. $100,000 at the same rate earns $7,000. Early on, your money comes from labor, not investments. The accumulation is slow because the engine has no fuel.</p>
<h2>The Three Levers
    </h2><ol>
<li><strong>Increase income</strong> — side hustles (Reflex, Papa Pal), raises, career advancement</li>
<li><strong>Reduce expenses</strong> — automate savings, avoid lifestyle inflation, use the &ldquo;Is It Worth It&rdquo; equation</li>
<li><strong>Invest wisely</strong> — index funds over individual stocks, tax-advantaged accounts first</li>
</ol>
<h2>The &ldquo;Is It Worth It&rdquo; Equation
    </h2><p>Item cost ÷ after-tax hourly wage = hours of work required. An $80 pair of pants costs four hours of your life. Is it worth it? This reframes spending in terms of life energy, not dollars.</p>
<h2>The Investment Hierarchy
    </h2><p>Max out tax-advantaged accounts first: 401(k) → IRA → HSA → taxable brokerage. HSAs have triple tax advantages. Do not skip them.</p>
<h2>Index Funds over Stock Picking
    </h2><p>Tu recommends index funds using the Halloween candy variety pack analogy: diversification means you do not need to pick the winning individual pieces. Most people underperform the market trying.</p>
<h2>Automate Everything
    </h2><p>Set up automatic transfers on payday. Remove willpower from the equation. Start with 5-10% and increase over time. Consistency beats timing.</p>
<h2>Avoid the Comparison Trap
    </h2><p>Social media is a highlight reel. The person with the Balenciaga bag may have nothing saved. Visible consumption is not financial health.</p>
<h2>Big Expenses, Not Little Ones
    </h2><p>The biggest savings opportunities are in housing and transportation, not coffee and avocado toast. Optimize the large categories.</p>
<hr>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>The Money Expert: #1 Formula to Get Rich Off Your Normal Salary</title><link>https://www.tmfnk.com/listen/podcasts/on-purpose-jay-shetty-cody-sanchez-get-rich/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/on-purpose-jay-shetty-cody-sanchez-get-rich/</guid><description>Cody Sanchez on financial literacy as a language, why you don't need money to start a business, the four stages of investing, and why millionaires care about the game more than the score.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> On Purpose with Jay Shetty</li>
<li><strong>Host:</strong> Jay Shetty</li>
<li><strong>Guest:</strong> Cody Sanchez — entrepreneur, founder of Contrarian Thinking, author of <em>Main Street Millionaire</em></li>
<li><strong>Duration:</strong> ~1 hour 37 minutes</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/on-purpose-with-jay-shetty/id1450994021?i=1000725482231" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=tE6CwaBxuN4&amp;ab_channel=JayShettyPodcast" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Cody Sanchez built a community of 4 million people teaching unconventional approaches to money. She challenges the usual advice about homeownership, credit cards, and what it means to be rich.</p>
<hr>
<h2>Financial Literacy Is a Language
    </h2><p>Sanchez says understanding money is like speaking a language. Without it, you cannot build wealth. The problem is not a lack of money. It is a lack of knowledge about how to access it.</p>
<hr>
<h2>You Do Not Need Money to Start a Business
    </h2><p>You need knowledge about how to get money. Grants, loans, investors — there are options. The key is changing your mindset to recognize that money is all around you.</p>
<hr>
<h2>The Four Stages of Investing
    </h2><ol>
<li>Invest in yourself — education and skills</li>
<li>Invest in low-cost index funds (S&amp;P 500)</li>
<li>Explore private equity and alternatives</li>
<li>Become the company others invest in</li>
</ol>
<hr>
<h2>Credit Cards vs. Debit Cards
    </h2><p>Credit cards, used responsibly, build credit history and offer fraud protection. Debit cards offer neither. Understanding the difference is basic financial literacy.</p>
<hr>
<h2>Homeownership as Investment
    </h2><p>Sanchez argues homeownership is mathematically unsound in today&rsquo;s market: high interest rates, housing shortages, stagnant wages.</p>
<hr>
<h2>The NPC Ladder
    </h2><p>A framework for career growth. At the bottom: NPCs who repeat the same tasks. Above: supporting cast, then main characters who change the script. The highest performers actively change the company&rsquo;s direction and get equity.</p>
<hr>
<h2>Millionaires Care About the Game
    </h2><p>Real millionaires focus on winning and learning, not on the money itself. The trap is &ldquo;looking rich instead of being rich&rdquo; — going into debt for appearances.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item><item><title>Sam Altman: OpenAI Founder Reveals His Writing System</title><link>https://www.tmfnk.com/listen/podcasts/how-to-write-good-sam-altman/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://www.tmfnk.com/listen/podcasts/how-to-write-good-sam-altman/</guid><description>Sam Altman on writing as externalized thinking, why clear writing comes from clear thinking, his notebook-and-pen system, and how AI is transforming the writing process.</description><content:encoded><![CDATA[
<ul>
<li><strong>Podcast:</strong> How to Write Good</li>
<li><strong>Host:</strong> David Perell</li>
<li><strong>Guest:</strong> Sam Altman — OpenAI founder</li>
<li><strong>Duration:</strong> ~47 minutes</li>
<li><strong>Listen:</strong> <a href="https://podcasts.apple.com/us/podcast/sam-altman-openai-founder-reveals-his-writing-system/id1700171470?i=1000670640365" target="_blank" rel="noopener">Apple Podcasts</a> | <a href="https://www.youtube.com/watch?v=6pxmdmlJCG0&amp;ab_channel=DavidPerell" target="_blank" rel="noopener">YouTube</a></li>
</ul>
<hr>
<p>Sam Altman does not consider himself a natural writer. But he has developed a systematic approach to writing as a tool for thinking, and he uses it constantly to run OpenAI.</p>
<hr>
<h2>Writing as Externalized Thinking
    </h2><p>Altman&rsquo;s core idea: writing is not primarily for communication. It is for thinking. When he has a hard problem or feels confused about something, he sits down and writes it out. He has not found anything better.</p>
<p>&ldquo;Clear communication is very much downstream of clear thinking.&rdquo;</p>
<hr>
<h2>The Physical System
    </h2><p>Altman uses spiral notebooks that let him rip out pages and lay them flat. He goes through one every 2-3 weeks. His preferred pens: Uniball Micro5 or Muji 36/37 in dark blue ink.</p>
<p>He writes primarily for himself and small private groups. Rarely for public consumption.</p>
<hr>
<h2>Short Is Better
    </h2><p>Altman prefers documents short enough to send as a mobile phone screenshot. Brevity forces clarity.</p>
<hr>
<h2>The Thinking Rhythm
    </h2><p>Altman follows a pattern: intense, packed weeks in the office, then quiet weekends with long blocks for reflection and writing. Historically he took longer chunks — a month with people, a month alone.</p>
<hr>
<h2>Protecting Fragile Ideas
    </h2><p>Altman describes good ideas as &ldquo;extremely fragile.&rdquo; The biggest threat: smart people who understand why every great idea is bad. He emphasizes the importance of creating a process that does not kill potentially great ideas before they have a chance.</p>
<hr>
<h2>AI and Writing
    </h2><p>Altman sees AI as a collaborator, not a replacement. He uses ChatGPT as a sparring partner, a &ldquo;super thesaurus,&rdquo; and a tool to lower the activation energy for writing. He does not see evidence that AI is killing serious writing. Even if AI could write better than humans, people still want to connect with human authors.</p>
<hr>
<h2>What Matters Most
    </h2><p>Spend more time thinking about what to work on than how to be more productive. Altman quotes someone: &ldquo;Most people can&rsquo;t even let themselves think the interesting thoughts, much less say the interesting ideas.&rdquo; Reducing anxiety is crucial for clear thinking.</p>
<p>Crepi il lupo! 🐺</p>
]]></content:encoded></item></channel></rss>