<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="UTF-8" />

  <link rel="canonical" href="https://blog.kran.ai/sitemap.xml" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />

  <meta
    name="description"
    content="Esben Kran"
  />

  <meta property="og:site_name" content="Esben Kran" />

  <link rel="icon" type="image/png" sizes="32x32" href="/assets/img/favicon-32.png" />
  <link rel="icon" type="image/png" sizes="16x16" href="/assets/img/favicon-16.png" />
  <link rel="apple-touch-icon" sizes="180x180" href="/assets/img/favicon-180.png" />

  <link rel="stylesheet" href="/styles.css" />

  

  
  <meta
    property="og:description"
    content="Esben Kran"
  />
   
  <meta property="og:title" content="Esben Kran" />
  <meta property="og:type" content="website" />
   

  <meta property="og:url" content="https://blog.kran.ai/sitemap.xml" />

   

  <title>
     
    &mdash; Esben Kran 
  </title>

  
</head>

  <body class="">
    <script>
      // Initial theme setup
      if (
        localStorage.theme === "dark" ||
        (!("theme" in localStorage) &&
          window.matchMedia("(prefers-color-scheme: dark)").matches)
      ) {
        document.querySelector("body").classList.add("theme-dark");
      }

      // Check terminal mode
      if (localStorage.terminalMode === "true") {
        document.querySelector("body").classList.add("theme-terminal");

        // Add terminal stylesheet dynamically
        var terminalStyle = document.createElement("link");
        terminalStyle.rel = "stylesheet";
        terminalStyle.id = "terminal-stylesheet";
        terminalStyle.href =
          '/assets/css/terminal-style.css';
        document.head.appendChild(terminalStyle);
      }
    </script>
    <nav class="flex align-center font-ui"><span class="flex-grow">
  <a class="internal-link plain" href="/">Esben Kran</a>
  
</span>
<span class="flex-shrink ssr">
  <!-- If it is mobile width we remove /now -->
  <a href="/research" class="muted plain ssl mh hide-on-small-screen">Research</a>
  <a href="/shortform" class="muted plain ssl mh hide-on-small-screen"
    >Shortform</a
  >
</span>
<span
  id="theme-toggle"
  title="Toggle dark mode"
  aria-label="Toggle dark mode"
  type="button"
  role="switch"
  aria-checked="true"
>
  <div class="theme-toggle-slide"></div>
  <div class="theme-toggle-switch"></div>
</span>
</nav>
    <div class="wrap">
      <main class=""><?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://blog.kran.ai/about-heroes</loc>
    <lastmod>2026-06-23T08:40:12+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/audiovisual-reading</loc>
    <lastmod>2024-10-24T04:36:13+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/tools</loc>
    <lastmod>2025-04-18T23:55:13+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/agents</loc>
    <lastmod>2024-10-27T21:43:21+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/hiatus</loc>
    <lastmod>2024-10-11T06:54:27+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/cybermorphism</loc>
    <lastmod>2024-10-27T16:04:41+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/do</loc>
    <lastmod>2024-10-24T03:22:08+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/endgame</loc>
    <lastmod>2024-10-27T09:06:18+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/expensive-internet</loc>
    <lastmod>2024-10-28T12:21:19+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/optimism</loc>
    <lastmod>2024-10-29T05:34:18+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/sentware</loc>
    <lastmod>2024-11-01T20:36:15+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/misdeployment</loc>
    <lastmod>2024-11-14T07:45:13+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/the-ai-bubble</loc>
    <lastmod>2025-02-03T07:39:25+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/dont-give-up</loc>
    <lastmod>2025-05-15T02:19:51+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/agi-privacy</loc>
    <lastmod>2025-06-12T21:55:24+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/agi-security</loc>
    <lastmod>2025-06-18T23:17:39+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/learning-from-architecture</loc>
    <lastmod>2025-07-07T17:09:34+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/raising-for-the-endgame</loc>
    <lastmod>2025-07-21T06:48:06+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/how-to-host-a-hackathon</loc>
    <lastmod>2026-07-13T09:59:49+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/mediocre-intelligence-outstanding-results</loc>
    <lastmod>2025-09-08T02:12:13+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/to-an-18-year-old-me</loc>
    <lastmod>2025-09-17T21:59:33+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/surrounded-by-enemies</loc>
    <lastmod>2025-11-22T07:19:30+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/is-the-light-merely-for-the-learned</loc>
    <lastmod>2025-11-22T11:19:51+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/vibe-coding</loc>
    <lastmod>2025-12-06T19:43:06+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/falling</loc>
    <lastmod>2026-03-01T20:16:14+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/the-designer-the-craftsman-the-programmer</loc>
    <lastmod>2026-03-19T05:07:18+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/an-athletes-mind</loc>
    <lastmod>2026-05-30T08:18:42+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/codebase-is-execution-environment</loc>
    <lastmod>2026-05-30T08:26:01+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/alertbench</loc>
    <lastmod>2026-07-13T10:19:59+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/why-im-advising-10zeros</loc>
    <lastmod>2026-03-24T00:37:14+00:00</lastmod>
  </url>
  <url>
    <loc>https://blog.kran.ai/404.html</loc>
  </url>
  <url>
    <loc>https://blog.kran.ai/</loc>
  </url>
  <url>
    <loc>https://blog.kran.ai/research</loc>
  </url>
  <url>
    <loc>https://blog.kran.ai/shortform</loc>
  </url>
</urlset>
</main>
      <footer><div class="pn2 mn2 bt">
  
  <p>
    Follow me on
    <a
      class="external-link"
      href="https://twitter.com/esbenkc"
      rel="noopener noreferrer"
      >Twitter</a
    >
  </p>
  <div class="small font-ui footer-subscribe">
    <script
      async
      data-uid="ffa813ca41"
      src="https://kran.ck.page/ffa813ca41/index.js"
    ></script>
  </div>
  
</div>
</footer>
    </div>

    <script>
      // Create terminal stylesheet link if not already created
      if (!document.getElementById("terminal-stylesheet")) {
        var terminalStylesheet = document.createElement("link");
        terminalStylesheet.rel = "stylesheet";
        terminalStylesheet.href =
          '/assets/css/terminal-style.css';
        terminalStylesheet.id = "terminal-stylesheet";
        terminalStylesheet.disabled =
          !document.body.classList.contains("theme-terminal");
        document.head.appendChild(terminalStylesheet);
      }

      // Get references to toggle elements
      var darkModeToggle = document.querySelector("#theme-toggle");
      var tocToggle = document.querySelector("#toc-toggle");

      // Dark mode toggle function
      function toggleTheme() {
        document.body.classList.toggle("theme-dark");
        updateThemeState();
      }

      // Update theme state in localStorage
      function updateThemeState() {
        let isDarkMode = document.body.classList.contains("theme-dark");
        let theme = isDarkMode ? "dark" : "light";
        localStorage.setItem("theme", theme);
        if (darkModeToggle) {
          darkModeToggle.setAttribute("aria-checked", isDarkMode.toString());
        }
      }

      // Toggle table of contents function
      function toggleTOC() {
        var toc = document.querySelector(".table-of-contents");
        if (toc) {
          toc.classList.toggle("toc-visible");
          var isVisible = toc.classList.contains("toc-visible");
          localStorage.setItem("tocVisible", isVisible.toString());
          if (tocToggle) {
            tocToggle.setAttribute("aria-checked", isVisible.toString());
          }
        }
      }

      // Initialize theme and UI elements
      function initializeTheme() {
        // Set dark mode toggle state
        let isDarkMode = document.body.classList.contains("theme-dark");
        if (darkModeToggle) {
          darkModeToggle.setAttribute("aria-checked", isDarkMode.toString());
        }

        // Set TOC toggle state
        if (tocToggle) {
          let tocVisible = localStorage.getItem("tocVisible") === "true";
          tocToggle.setAttribute("aria-checked", tocVisible.toString());

          // Show/hide TOC based on stored preference
          var toc = document.querySelector(".table-of-contents");
          if (toc && tocVisible) {
            toc.classList.add("toc-visible");
          }
        }

        // (terminal-mode toggle button removed; Shift+E still toggles it)
      }

      // Terminal mode functions
      function enableTerminalMode() {
        document.body.classList.add("theme-terminal");
        var terminalStylesheet = document.getElementById("terminal-stylesheet");
        if (terminalStylesheet) {
          terminalStylesheet.disabled = false;
        }
        localStorage.setItem("terminalMode", "true");

        // Add terminal indicator
        if (!document.getElementById("terminal-indicator")) {
          var indicator = document.createElement("div");
          indicator.id = "terminal-indicator";
          indicator.textContent = "TERMINAL MODE [Shift+E to exit]";
          indicator.style.position = "fixed";
          indicator.style.bottom = "10px";
          indicator.style.right = "10px";
          indicator.style.background = "rgba(0, 50, 0, 0.7)";
          indicator.style.color = "#00ff00";
          indicator.style.padding = "5px 10px";
          indicator.style.fontFamily = "monospace";
          indicator.style.zIndex = "9999";
          indicator.style.fontSize = "12px";
          indicator.style.borderRadius = "3px";
          document.body.appendChild(indicator);
        }
      }

      function disableTerminalMode() {
        document.body.classList.remove("theme-terminal");
        var terminalStylesheet = document.getElementById("terminal-stylesheet");
        if (terminalStylesheet) {
          terminalStylesheet.disabled = true;
        }
        localStorage.setItem("terminalMode", "false");

        // Remove terminal indicator
        var indicator = document.getElementById("terminal-indicator");
        if (indicator) {
          indicator.remove();
        }
      }

      function toggleTerminalMode() {
        if (document.body.classList.contains("theme-terminal")) {
          disableTerminalMode();
        } else {
          enableTerminalMode();
        }
      }

      // Add event listeners
      if (darkModeToggle) {
        darkModeToggle.addEventListener("click", toggleTheme);
      }

      if (tocToggle) {
        tocToggle.addEventListener("click", toggleTOC);
      }

      // Global keyboard shortcuts
      window.addEventListener("keydown", function (e) {
        // Skip if in input or textarea
        if (
          document.activeElement.tagName === "INPUT" ||
          document.activeElement.tagName === "TEXTAREA"
        ) {
          return;
        }

        // Dark mode toggle with Shift+D
        if (
          e.key === "D" &&
          e.shiftKey &&
          !e.ctrlKey &&
          !e.metaKey &&
          !e.altKey
        ) {
          toggleTheme();
          e.preventDefault();
        }

        // TOC toggle with Shift+T
        if (
          e.key === "T" &&
          e.shiftKey &&
          !e.ctrlKey &&
          !e.metaKey &&
          !e.altKey
        ) {
          toggleTOC();
          e.preventDefault();
        }

        // Terminal mode toggle with Shift+E
        if (
          e.key === "E" &&
          e.shiftKey &&
          !e.ctrlKey &&
          !e.altKey &&
          !e.metaKey
        ) {
          toggleTerminalMode();
          e.preventDefault();
        }
      });

      // Initialize on page load
      initializeTheme();
    </script>
    <script
      async
      defer
      src="https://scripts.simpleanalyticscdn.com/latest.js"
    ></script>
    <noscript
      ><img
        src="https://queue.simpleanalyticscdn.com/noscript.gif"
        alt=""
        referrerpolicy="no-referrer-when-downgrade"
    /></noscript>
  </body>
</html>
