<!DOCTYPE html><html lang="en" data-astro-cid-37fxchfa> <head><!-- Global Metadata --><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="icon" type="image/png" href="/favicon.png"><link rel="icon" href="/favicon.ico"><link rel="sitemap" href="/sitemap-index.xml"><link rel="alternate" type="application/rss+xml" title="NickLothian.com" href="https://example.com/rss.xml"><meta name="generator" content="Astro v5.17.2"><meta name="theme-color" content="#0a0a0f"><!-- Google Fonts --><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Bangers&family=Space+Mono:ital,wght@0,400;0,700;1,400&family=Noto+Sans+JP:wght@400;700;900&display=swap" rel="stylesheet"><!-- Canonical URL --><link rel="canonical" href="https://example.com/"><!-- Primary Meta Tags --><title>NickLothian.com</title><meta name="title" content="NickLothian.com"><meta name="description" content="Welcome to the website of Nick Lothian"><!-- Open Graph / Facebook --><meta property="og:type" content="website"><meta property="og:url" content="https://example.com/"><meta property="og:title" content="NickLothian.com"><meta property="og:description" content="Welcome to the website of Nick Lothian"><meta property="og:image" content="https://example.com/_astro/blog-placeholder-1.Bx0Zcyzv.jpg"><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://example.com/"><meta property="twitter:title" content="NickLothian.com"><meta property="twitter:description" content="Welcome to the website of Nick Lothian"><meta property="twitter:image" content="https://example.com/_astro/blog-placeholder-1.Bx0Zcyzv.jpg"><!-- Google tag (gtag.js) --><script async src="https://www.googletagmanager.com/gtag/js?id=G-5L194XSBGJ"></script><script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-5L194XSBGJ');
</script><link rel="stylesheet" href="/_astro/_slug_.BP0CMpfY.css">
<style>.display-xl[data-astro-cid-4gpnogxu]{font-size:clamp(80px,15vw,200px);line-height:.85;letter-spacing:-2px;text-transform:uppercase}.display[data-astro-cid-4gpnogxu]{font-size:clamp(48px,6vw,80px);line-height:1;letter-spacing:2px;text-transform:uppercase}.chromatic-heavy-fx[data-astro-cid-4gpnogxu]{text-shadow:-4px -1px var(--verse-cyan),4px 1px var(--verse-magenta),0 0 30px rgba(255,42,109,.3)}
.btn[data-astro-cid-vnzlvqnm]{display:inline-block;font-family:var(--font-display);font-size:18px;letter-spacing:3px;text-transform:uppercase;padding:14px 32px;border:none;cursor:pointer;position:relative;overflow:hidden;transition:all .3s ease;text-decoration:none;text-align:center;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px))}.btn[data-astro-cid-vnzlvqnm].primary{background:var(--akira-red);color:#fff}.btn[data-astro-cid-vnzlvqnm].primary:hover{background:var(--akira-hot);box-shadow:0 0 30px #e6394680;transform:translateY(-2px);color:#fff}.btn[data-astro-cid-vnzlvqnm].outline{background:transparent;color:var(--verse-cyan);border:2px solid var(--verse-cyan)}.btn[data-astro-cid-vnzlvqnm].outline:hover{background:#00f5ff1a;box-shadow:0 0 30px #00f5ff4d;transform:translateY(-2px);color:var(--verse-cyan)}.btn[data-astro-cid-vnzlvqnm].glitch{background:var(--neo-panel);color:var(--text-primary);border:2px solid var(--text-primary)}.btn[data-astro-cid-vnzlvqnm].glitch:hover{animation:glitchBtn .3s steps(2) infinite;color:var(--text-primary)}@keyframes glitchBtn{0%{transform:translate(0)}25%{transform:translate(-2px,1px);text-shadow:2px 0 var(--verse-cyan),-2px 0 var(--verse-magenta)}50%{transform:translate(1px,-1px);text-shadow:-2px 0 var(--verse-cyan),2px 0 var(--verse-magenta)}75%{transform:translate(-1px,2px)}to{transform:translate(0)}}.btn[data-astro-cid-vnzlvqnm].manga{background:var(--verse-yellow);color:var(--neo-black);font-family:var(--font-comic);font-size:22px;letter-spacing:1px;border:3px solid var(--neo-black);box-shadow:4px 4px 0 var(--neo-black);clip-path:none}.btn[data-astro-cid-vnzlvqnm].manga:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--neo-black);color:var(--neo-black)}
</style>
<link rel="stylesheet" href="/_astro/index.DYDIvJ28.css">
<link rel="stylesheet" href="/_astro/_slug_.BMaVpCAA.css"></head> <body data-astro-cid-37fxchfa> <nav class="nav" id="main-nav" data-astro-cid-3ef6ksr2> <a href="/" class="nav-logo" data-astro-cid-3ef6ksr2> <span class="logo-nick" data-astro-cid-3ef6ksr2>NICK</span><span class="logo-accent" data-astro-cid-3ef6ksr2>L</span><span class="logo-rest" data-astro-cid-3ef6ksr2>OTHIAN</span> </a> <div class="nav-links" data-astro-cid-3ef6ksr2> <a href="/" class="active" data-astro-cid-3ef6ksr2="true" data-astro-cid-eimmu3lg> Home </a> <a href="/blog" data-astro-cid-3ef6ksr2="true" data-astro-cid-eimmu3lg> Blog </a> <a href="/about" data-astro-cid-3ef6ksr2="true" data-astro-cid-eimmu3lg> About </a> <a href="https://tools.nicklothian.com/" data-astro-cid-3ef6ksr2="true" data-astro-cid-eimmu3lg> Tools </a>  </div> <div class="nav-actions" data-astro-cid-3ef6ksr2> <button class="hamburger" id="hamburger" aria-label="Open menu" data-astro-cid-3ef6ksr2> <span data-astro-cid-3ef6ksr2></span> <span data-astro-cid-3ef6ksr2></span> <span data-astro-cid-3ef6ksr2></span> </button> </div> </nav> <!-- Mobile overlay menu --> <div class="mobile-menu" id="mobile-menu" data-astro-cid-3ef6ksr2> <div class="mobile-menu-inner" data-astro-cid-3ef6ksr2> <a href="/" class="mobile-link" data-astro-cid-3ef6ksr2>Home</a><a href="/blog" class="mobile-link" data-astro-cid-3ef6ksr2>Blog</a><a href="/about" class="mobile-link" data-astro-cid-3ef6ksr2>About</a><a href="https://tools.nicklothian.com/" class="mobile-link" data-astro-cid-3ef6ksr2>Tools</a> </div> </div> <script type="module">const l=document.getElementById("main-nav");window.addEventListener("scroll",()=>{window.scrollY>100?l?.classList.add("scrolled"):l?.classList.remove("scrolled")});const e=document.getElementById("hamburger"),s=document.getElementById("mobile-menu");e?.addEventListener("click",()=>{s?.classList.toggle("open"),e?.classList.toggle("open")});s?.querySelectorAll("a").forEach(t=>{t.addEventListener("click",()=>{s?.classList.remove("open"),e?.classList.remove("open")})});</script>  <main data-astro-cid-37fxchfa>   <section class="hero" data-astro-cid-j7pv25f6> <!-- Atmospheric glows --> <div class="hero-atmosphere" aria-hidden="true" data-astro-cid-j7pv25f6></div> <!-- Speed lines --> <div class="speed-lines" aria-hidden="true" data-astro-cid-j7pv25f6> <div class="speed-line" style="top: 25%; width: 100px; animation-delay: 0s;" data-astro-cid-j7pv25f6></div> <div class="speed-line" style="top: 40%; width: 70px; animation-delay: 0.3s;" data-astro-cid-j7pv25f6></div> <div class="speed-line" style="top: 55%; width: 120px; animation-delay: 0.6s;" data-astro-cid-j7pv25f6></div> <div class="speed-line" style="top: 70%; width: 80px; animation-delay: 0.9s;" data-astro-cid-j7pv25f6></div> <div class="speed-line speed-line-cyan" style="top: 35%; width: 90px; animation-delay: 1.2s; right: 0;" data-astro-cid-j7pv25f6></div> <div class="speed-line speed-line-cyan" style="top: 60%; width: 60px; animation-delay: 0.5s; right: 0;" data-astro-cid-j7pv25f6></div> </div> <!-- Japanese watermark --> <span class="jp-watermark" aria-hidden="true" data-astro-cid-j7pv25f6>ネオバース</span> <!-- Registration marks --> <div class="reg-mark tl" aria-hidden="true" data-astro-cid-j7pv25f6></div> <div class="reg-mark tr" aria-hidden="true" data-astro-cid-j7pv25f6></div> <div class="reg-mark bl" aria-hidden="true" data-astro-cid-j7pv25f6></div> <div class="reg-mark br" aria-hidden="true" data-astro-cid-j7pv25f6></div> <div class="hero-content" data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-n4qxztk5> <span class="number" data-astro-cid-n4qxztk5>01</span> <span class="dash" data-astro-cid-n4qxztk5> — </span> <span class="label" data-astro-cid-n4qxztk5>Home</span> </div>  <div class="hero-title" data-astro-cid-j7pv25f6> <h1 data-text="Nick" data-astro-cid-4gpnogxu="true" class="chromatic-text display-xl chromatic-heavy-fx">Nick</h1>  <span class="hero-title-accent" data-astro-cid-j7pv25f6>Lothian</span> </div> <p class="hero-subtitle" data-astro-cid-j7pv25f6>Doing Stuff</p> <div class="hero-actions" data-astro-cid-j7pv25f6> <a href="/blog" data-astro-cid-vnzlvqnm="true" class="btn primary">Read the Blog</a>  <a href="/about" data-astro-cid-vnzlvqnm="true" class="btn outline">About Me</a>  </div> </div> </section> <hr class="panel-divider" data-astro-cid-dlvvshys>   <section class="updates reveal" data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-n4qxztk5> <span class="number" data-astro-cid-n4qxztk5>02</span> <span class="dash" data-astro-cid-n4qxztk5> — </span> <span class="label" data-astro-cid-n4qxztk5>Updates</span> </div>  <h2 class="section-title chromatic" data-astro-cid-j7pv25f6>LATEST UPDATES</h2> <ul class="updates-list" data-astro-cid-j7pv25f6> <li class="update-item" data-astro-cid-lll2d3vm> <span class="source-badge blog" data-astro-cid-lll2d3vm>BLOG</span> <a href="/blog/2026/04/kaggle-agi-progress-2026-optimizer-benchmark/" class="update-link" data-astro-cid-lll2d3vm>Kaggle AGI Progress 2026: Optimizer Benchmark</a> <time class="update-date" datetime="2026-04-19T00:00:00.000Z" data-astro-cid-lll2d3vm>Apr 19, 2026</time> </li> <li class="update-item" data-astro-cid-lll2d3vm> <span class="source-badge blog" data-astro-cid-lll2d3vm>BLOG</span> <a href="/blog/2026/03/benchmarking-agentic-llms-on-sql-generation/" class="update-link" data-astro-cid-lll2d3vm>Benchmarking Agentic LLMs on SQL Generation</a> <time class="update-date" datetime="2026-03-31T05:28:14.000Z" data-astro-cid-lll2d3vm>Mar 31, 2026</time> </li> <li class="update-item" data-astro-cid-lll2d3vm> <span class="source-badge blog" data-astro-cid-lll2d3vm>BLOG</span> <a href="/blog/2026/02/my-ideal-agent-orchestrator/" class="update-link" data-astro-cid-lll2d3vm>My Ideal Agent Orchestrator</a> <time class="update-date" datetime="2026-02-27T03:19:56.000Z" data-astro-cid-lll2d3vm>Feb 27, 2026</time> </li> <li class="update-item" data-astro-cid-lll2d3vm> <span class="source-badge blog" data-astro-cid-lll2d3vm>BLOG</span> <a href="/blog/2026/02/proxying-bluetooth-to-a-home-assistant-vm/" class="update-link" data-astro-cid-lll2d3vm>Proxying Bluetooth to a Home Assistant VM</a> <time class="update-date" datetime="2026-02-23T12:45:34.000Z" data-astro-cid-lll2d3vm>Feb 23, 2026</time> </li> <li class="update-item" data-astro-cid-lll2d3vm> <span class="source-badge blog" data-astro-cid-lll2d3vm>BLOG</span> <a href="/blog/2026/02/a-quick-tab-sweep/" class="update-link" data-astro-cid-lll2d3vm>A quick tab sweep</a> <time class="update-date" datetime="2026-02-19T05:22:07.000Z" data-astro-cid-lll2d3vm>Feb 19, 2026</time> </li> <li class="update-item" data-astro-cid-lll2d3vm> <span class="source-badge tools" data-astro-cid-lll2d3vm>TOOLS</span> <a href="https://tools.nicklothian.com" class="update-link" data-astro-cid-lll2d3vm>chore: replace git-stage-commit-push-pr skill with git-for-tools</a> <time class="update-date" datetime="2026-02-19T00:00:00.000Z" data-astro-cid-lll2d3vm>Feb 19, 2026</time> </li> <li class="update-item" data-astro-cid-lll2d3vm> <span class="source-badge tools" data-astro-cid-lll2d3vm>TOOLS</span> <a href="https://tools.nicklothian.com" class="update-link" data-astro-cid-lll2d3vm>chore: add claude skill config and changes feed</a> <time class="update-date" datetime="2026-02-19T00:00:00.000Z" data-astro-cid-lll2d3vm>Feb 19, 2026</time> </li> <li class="update-item" data-astro-cid-lll2d3vm> <span class="source-badge blog" data-astro-cid-lll2d3vm>BLOG</span> <a href="/blog/2026/02/introducing-llm-comparator/" class="update-link" data-astro-cid-lll2d3vm>Introducing LLM Comparator</a> <time class="update-date" datetime="2026-02-01T00:00:00.000Z" data-astro-cid-lll2d3vm>Feb 1, 2026</time> </li>  </ul> </section> <hr class="panel-divider" data-astro-cid-dlvvshys>   <section class="latest reveal" data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-n4qxztk5> <span class="number" data-astro-cid-n4qxztk5>03</span> <span class="dash" data-astro-cid-n4qxztk5> — </span> <span class="label" data-astro-cid-n4qxztk5>Latest</span> </div>  <h2 class="section-title chromatic" data-astro-cid-j7pv25f6>RECENT WRITING</h2> <div class="comic-grid" data-astro-cid-j7pv25f6> <div class="grid-item grid-featured" data-astro-cid-j7pv25f6> <a href="/blog/2026/04/kaggle-agi-progress-2026-optimizer-benchmark/" class="card card-text-mode featured" style="background: linear-gradient(135deg, #4361ee 0%, #ff2d55 100%)" data-astro-cid-dohjnao5><div class="card-body" data-astro-cid-dohjnao5><span class="card-number" style="color: rgba(26, 26, 46, 0.3)" data-astro-cid-dohjnao5>19 Apr 2026</span><h3 class="card-title" data-astro-cid-dohjnao5>Kaggle AGI Progress 2026: Optimizer Benchmark</h3></div></a> </div><div class="grid-item" data-astro-cid-j7pv25f6> <a href="/blog/2026/03/benchmarking-agentic-llms-on-sql-generation/" class="card card-text-mode" style="background: linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 100%)" data-astro-cid-dohjnao5><div class="card-body" data-astro-cid-dohjnao5><span class="card-number" style="color: rgba(230, 57, 70, 0.35)" data-astro-cid-dohjnao5>31 Mar 2026</span><h3 class="card-title" data-astro-cid-dohjnao5>Benchmarking Agentic LLMs on SQL Generation</h3></div></a> </div><div class="grid-item" data-astro-cid-j7pv25f6> <a href="/blog/2026/02/my-ideal-agent-orchestrator/" class="card card-text-mode" style="background: linear-gradient(135deg, #4361ee 0%, #00f5ff 100%)" data-astro-cid-dohjnao5><div class="card-body" data-astro-cid-dohjnao5><span class="card-number" style="color: rgba(230, 57, 70, 0.35)" data-astro-cid-dohjnao5>27 Feb 2026</span><h3 class="card-title" data-astro-cid-dohjnao5>My Ideal Agent Orchestrator</h3></div></a> </div><div class="grid-item" data-astro-cid-j7pv25f6> <a href="/blog/2026/02/proxying-bluetooth-to-a-home-assistant-vm/" class="card card-text-mode" style="background: linear-gradient(135deg, #e63946 0%, #ff00aa 100%)" data-astro-cid-dohjnao5><div class="card-body" data-astro-cid-dohjnao5><span class="card-number" style="color: rgba(26, 26, 46, 0.3)" data-astro-cid-dohjnao5>23 Feb 2026</span><h3 class="card-title" data-astro-cid-dohjnao5>Proxying Bluetooth to a Home Assistant VM</h3></div></a> </div><div class="grid-item" data-astro-cid-j7pv25f6> <a href="/blog/2026/02/a-quick-tab-sweep/" class="card card-text-mode" style="background: linear-gradient(135deg, #4361ee 0%, #00f5ff 100%)" data-astro-cid-dohjnao5><div class="card-body" data-astro-cid-dohjnao5><span class="card-number" style="color: rgba(230, 57, 70, 0.35)" data-astro-cid-dohjnao5>19 Feb 2026</span><h3 class="card-title" data-astro-cid-dohjnao5>A quick tab sweep</h3></div></a> </div><div class="grid-item" data-astro-cid-j7pv25f6> <a href="/blog/2026/02/introducing-llm-comparator/" class="card card-image-mode" data-astro-cid-dohjnao5><div class="card-visual" data-astro-cid-dohjnao5><img src="/_astro/LLM-Comparator.TUKPgxXF_Z1FqF4c.webp" alt data-astro-cid-dohjnao5="true" loading="lazy" decoding="async" fetchpriority="auto" width="400" height="200" class="card-image"><span class="panel-badge" data-astro-cid-dohjnao5>06</span></div><div class="card-overlay" data-astro-cid-dohjnao5><h3 class="card-title" data-astro-cid-dohjnao5>Introducing LLM Comparator</h3><div class="card-date" data-astro-cid-dohjnao5><time datetime="2026-02-01T00:00:00.000Z"> Feb 1, 2026 </time></div><div class="card-chips-inline" data-astro-cid-dohjnao5><span data-astro-cid-b4zvghpy="true" class="chip cyan">AI</span> </div></div></a> </div> </div> <div class="see-all" data-astro-cid-j7pv25f6> <a href="/blog" data-astro-cid-vnzlvqnm="true" class="btn outline">See All Posts</a>  </div> </section>  </main> <div class="gradient-bar" data-astro-cid-sz7xmlte></div> <footer data-astro-cid-sz7xmlte> <div class="footer-inner" data-astro-cid-sz7xmlte> <div class="footer-brand" data-astro-cid-sz7xmlte> <a href="/" class="footer-logo" data-astro-cid-sz7xmlte> <span data-astro-cid-sz7xmlte>NICK</span><span class="accent" data-astro-cid-sz7xmlte>L</span><span data-astro-cid-sz7xmlte>OTHIAN</span> </a> </div> <div class="footer-links" data-astro-cid-sz7xmlte> <a href="/" data-astro-cid-sz7xmlte>Home</a><a href="/blog" data-astro-cid-sz7xmlte>Blog</a><a href="/about" data-astro-cid-sz7xmlte>About</a><a href="https://tools.nicklothian.com/" data-astro-cid-sz7xmlte>Tools</a> </div> <div class="footer-social" data-astro-cid-sz7xmlte> <a href="https://twitter.com/nlothian" target="_blank" rel="noopener noreferrer" aria-label="Twitter" data-astro-cid-sz7xmlte> <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-sz7xmlte> <path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z" data-astro-cid-sz7xmlte></path> </svg> </a> <a href="https://nlothian.bsky.social" target="_blank" rel="noopener noreferrer" aria-label="Bluesky" data-astro-cid-sz7xmlte> <svg viewBox="0 0 568 501" width="20" height="20" fill="currentColor" data-astro-cid-sz7xmlte> <path d="M123.121 33.6637C188.241 82.5526 258.281 181.681 284 234.873C309.719 181.681 379.759 82.5526 444.879 33.6637C491.866 -1.61183 568 -28.9064 568 57.9464C568 75.2916 558.055 203.659 552.222 224.501C531.947 296.954 458.067 315.434 392.347 304.249C507.222 323.8 536.444 388.56 473.333 453.32C353.473 576.312 301.061 422.461 287.631 383.039C285.169 375.812 284.017 372.431 284 375.306C283.983 372.431 282.831 375.812 280.369 383.039C266.939 422.461 214.527 576.312 94.6667 453.32C31.5556 388.56 60.7778 323.8 175.653 304.249C109.933 315.434 36.0529 296.954 15.7778 224.501C9.94525 203.659 0 75.2916 0 57.9464C0 -28.9064 76.1339 -1.61183 123.121 33.6637Z" data-astro-cid-sz7xmlte></path> </svg> </a> </div> </div> <div class="footer-meta" data-astro-cid-sz7xmlte> <div class="divider-line" data-astro-cid-sz7xmlte></div> <p data-astro-cid-sz7xmlte>&copy; 2026 Nick Lothian</p> </div> </footer>  <script type="module">const s=new IntersectionObserver(e=>{e.forEach(r=>{r.isIntersecting&&r.target.classList.add("visible")})},{threshold:.1,rootMargin:"0px 0px -40px 0px"});document.querySelectorAll(".reveal").forEach(e=>s.observe(e));</script> </body> </html>  