<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">A Digital Observatory for Systems and Infrastructure | Reece.AI</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://reece.ai/img/social-card-optimized.jpg"><meta data-rh="true" name="twitter:image" content="https://reece.ai/img/social-card-optimized.jpg"><meta data-rh="true" property="og:url" content="https://reece.ai/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="A Digital Observatory for Systems and Infrastructure | Reece.AI"><meta data-rh="true" name="description" content="Field notes on networking, cloud architecture, automation, AI, security, and technical experimentation."><meta data-rh="true" property="og:description" content="Field notes on networking, cloud architecture, automation, AI, security, and technical experimentation."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://reece.ai/"><link data-rh="true" rel="alternate" href="https://reece.ai/" hreflang="en"><link data-rh="true" rel="alternate" href="https://reece.ai/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span>  (default value)</p>\n   <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",(function(){void 0===window.docusaurus&&insertBanner()}))</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Reece.AI RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Reece.AI Atom Feed">






<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.4458df78.css">
<script src="/assets/js/runtime~main.79453f48.js" defer="defer"></script>
<script src="/assets/js/main.a5df861b.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard" data-theme="light">
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"dark"),document.documentElement.setAttribute("data-theme-choice",t||"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">REECE_AI</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/">Home</a><a class="navbar__item navbar__link" href="/docs/intro">Docs</a><a class="navbar__item navbar__link" href="/labs">Labs</a><a class="navbar__item navbar__link" href="/blog">Blog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://linkedin.com/in/ryan-reece" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">LinkedIn<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><a href="https://github.com/ryanreece" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><div class="dsla-search-wrapper"><div class="dsla-search-field" data-tags="default,docs-default-current"></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><main class="pageShell_n3Zo"><section class="heroSection_aWOV"><div class="heroContent_mKPX"><p class="eyebrow_kY3W">// Welcome to Reece_AI</p><h1>Exploring systems.<br>Mapping infrastructure.<br>Sharing discoveries.</h1><p class="heroLead_uMhl">Field notes on networking, cloud architecture, automation, AI, and technical experimentation.</p><div class="heroActions_Z2kl"><a class="primaryAction_zox2" href="/labs">Explore Labs <span aria-hidden="true">-&gt;</span></a><a class="secondaryAction_Y5al" href="/blog">View Latest Logs</a></div></div><div class="orbitalColumn_nkiy"><div class="orbitalDisplay_CeTK"><svg class="orbitalSvg_Z0PB" viewBox="0 0 520 320" role="img" aria-label="Orbital map of technical site topics"><defs><radialGradient id="sunGlow" cx="50%" cy="50%" r="50%"><stop offset="0%" stop-color="#fff7bf"></stop><stop offset="42%" stop-color="#ffd166"></stop><stop offset="100%" stop-color="#ff8a1f" stop-opacity="0.15"></stop></radialGradient><filter id="softGlow" x="-80%" y="-80%" width="260%" height="260%"><feGaussianBlur stdDeviation="5" result="blur"></feGaussianBlur><feMerge><feMergeNode in="blur"></feMergeNode><feMergeNode in="SourceGraphic"></feMergeNode></feMerge></filter><radialGradient id="planetBlueGradient" cx="32%" cy="28%" r="72%"><stop offset="0%" stop-color="#d8f6ff"></stop><stop offset="42%" stop-color="#4aaeff"></stop><stop offset="100%" stop-color="#0a376b"></stop></radialGradient><radialGradient id="planetOrangeGradient" cx="32%" cy="28%" r="72%"><stop offset="0%" stop-color="#ffd7a6"></stop><stop offset="44%" stop-color="#ff6b1a"></stop><stop offset="100%" stop-color="#6e2108"></stop></radialGradient><radialGradient id="planetVioletGradient" cx="32%" cy="28%" r="72%"><stop offset="0%" stop-color="#eeeaff"></stop><stop offset="42%" stop-color="#6757ff"></stop><stop offset="100%" stop-color="#21145f"></stop></radialGradient><radialGradient id="planetGreenGradient" cx="32%" cy="28%" r="72%"><stop offset="0%" stop-color="#d8ffe9"></stop><stop offset="42%" stop-color="#23f3a2"></stop><stop offset="100%" stop-color="#0d5134"></stop></radialGradient><radialGradient id="planetCyanGradient" cx="32%" cy="28%" r="72%"><stop offset="0%" stop-color="#e2fbff"></stop><stop offset="42%" stop-color="#35dfff"></stop><stop offset="100%" stop-color="#0a4a5e"></stop></radialGradient><radialGradient id="planetSmallGradient" cx="32%" cy="28%" r="72%"><stop offset="0%" stop-color="#f0fbff"></stop><stop offset="42%" stop-color="#9ef1ff"></stop><stop offset="100%" stop-color="#2a5675"></stop></radialGradient></defs><g class="starField_UvfM"><circle cx="30" cy="42" r="0.8"></circle><circle cx="36" cy="51" r="0.5"></circle><circle cx="64" cy="126" r="0.6"></circle><circle cx="14" cy="106" r="0.5"></circle><circle cx="112" cy="62" r="0.7"></circle><circle cx="12" cy="72" r="0.7"></circle><circle cx="446" cy="48" r="1"></circle><circle cx="416" cy="66" r="1"></circle><circle cx="478" cy="148" r="0.7"></circle><circle cx="378" cy="198" r="0.8"></circle><circle cx="430" cy="252" r="0.9"></circle><circle cx="230" cy="172" r="0.9"></circle><circle cx="78" cy="268" r="1"></circle><circle cx="224" cy="34" r="0.8"></circle><circle cx="52" cy="18" r="0.6"></circle><circle cx="86" cy="34" r="1.1"></circle><circle cx="145" cy="22" r="0.9"></circle><circle cx="189" cy="46" r="1.1"></circle><circle cx="268" cy="18" r="0.7"></circle><circle cx="314" cy="38" r="0.2"></circle><circle cx="352" cy="24" r="0.8"></circle><circle cx="492" cy="28" r="1"></circle><circle cx="58" cy="86" r="0.9"></circle><circle cx="154" cy="78" r="1.2"></circle><circle cx="202" cy="94" r="0.7"></circle><circle cx="274" cy="72" r="1"></circle><circle cx="338" cy="88" r="0.6"></circle><circle cx="468" cy="94" r="0.3"></circle><circle cx="28" cy="154" r="0.8"></circle><circle cx="122" cy="148" r="1.0"></circle><circle cx="176" cy="132" r="0.6"></circle><circle cx="266" cy="138" r="0.2"></circle><circle cx="326" cy="162" r="0.9"></circle><circle cx="398" cy="136" r="0.5"></circle><circle cx="492" cy="184" r="1"></circle><circle cx="46" cy="218" r="1.0"></circle><circle cx="104" cy="232" r="0.7"></circle><circle cx="162" cy="206" r="1"></circle><circle cx="286" cy="226" r="0.8"></circle><circle cx="344" cy="248" r="1.3"></circle><circle cx="462" cy="224" r="0.6"></circle><circle cx="18" cy="312" r="1"></circle><circle cx="96" cy="326" r="0.2"></circle><circle cx="142" cy="292" r="0.8"></circle><circle cx="206" cy="318" r="0.6"></circle><circle cx="252" cy="286" r="1.0"></circle><circle cx="318" cy="334" r="0.9"></circle><circle cx="392" cy="306" r="1.0"></circle><circle cx="448" cy="336" r="0.4"></circle><circle cx="486" cy="292" r="1"></circle></g><g class="dottedRing__js4"><ellipse cx="260" cy="160" rx="112" ry="48"></ellipse></g><circle class="sun_KyFT" cx="260" cy="160" r="22" filter="url(#softGlow)" fill="url(#sunGlow)"></circle><g><g class="interactiveOrbit_dIJo" tabindex="0" aria-label="Networking: Packets + protocols" style="--orbit-radius:172px;--orbit-scale:0.48255813953488375;--orbit-scale-inverse:2.072289156626506;--orbit-speed:34s;--orbit-delay:-8s"><ellipse class="orbit_wD_p orbitTrack_oujm" cx="260" cy="160" rx="172" ry="83"></ellipse><ellipse class="orbitHitTarget_BUdk" cx="260" cy="160" rx="172" ry="83"></ellipse><g class="planetOrbit_VJm4"><g class="planetOrbitSpin_W3x6"><g class="planetRadius_QiO1"><g class="planetCounterScale_u_LC"><circle class="planetBody_MPTj planetBlue_psqw" cx="0" cy="0" r="12"></circle><g class="planetTooltip_frYP" transform="translate(18 -58)"><path class="tooltipStem_tZkS" d="M0 45L-10 54"></path><rect class="tooltipBox_wHaF" x="0" y="0" width="142" height="48" rx="6"></rect><text class="tooltipLabel_p8TI" x="12" y="18">Networking</text><text class="tooltipValue_IfuM" x="12" y="36">128</text><text class="tooltipDetail_YoSy" x="42" y="36">Packets + protocols</text></g></g></g></g></g></g><g class="interactiveOrbit_dIJo" tabindex="0" aria-label="AI / ML: Models + images" style="--orbit-radius:130px;--orbit-scale:0.5;--orbit-scale-inverse:2;--orbit-speed:24s;--orbit-delay:-3s"><ellipse class="orbit_wD_p orbitTrack_oujm" cx="260" cy="160" rx="130" ry="65"></ellipse><ellipse class="orbitHitTarget_BUdk" cx="260" cy="160" rx="130" ry="65"></ellipse><g class="planetOrbit_VJm4"><g class="planetOrbitSpin_W3x6"><g class="planetRadius_QiO1"><g class="planetCounterScale_u_LC"><circle class="planetBody_MPTj planetOrange_v7LF" cx="0" cy="0" r="7"></circle><g class="planetTooltip_frYP" transform="translate(18 -58)"><path class="tooltipStem_tZkS" d="M0 45L-10 54"></path><rect class="tooltipBox_wHaF" x="0" y="0" width="142" height="48" rx="6"></rect><text class="tooltipLabel_p8TI" x="12" y="18">AI / ML</text><text class="tooltipValue_IfuM" x="12" y="36">06</text><text class="tooltipDetail_YoSy" x="42" y="36">Models + images</text></g></g></g></g></g></g><g class="interactiveOrbit_dIJo" tabindex="0" aria-label="Infrastructure: Cloud + routing" style="--orbit-radius:235px;--orbit-scale:0.43829787234042555;--orbit-scale-inverse:2.2815533980582523;--orbit-speed:42s;--orbit-delay:-16s"><ellipse class="guideOrbit_XX6u orbitTrack_oujm" cx="260" cy="160" rx="235" ry="103"></ellipse><ellipse class="orbitHitTarget_BUdk" cx="260" cy="160" rx="235" ry="103"></ellipse><g class="planetOrbit_VJm4"><g class="planetOrbitSpin_W3x6"><g class="planetRadius_QiO1"><g class="planetCounterScale_u_LC"><circle class="planetBody_MPTj planetViolet_GBOy" cx="0" cy="0" r="9"></circle><g class="planetTooltip_frYP" transform="translate(18 -58)"><path class="tooltipStem_tZkS" d="M0 45L-10 54"></path><rect class="tooltipBox_wHaF" x="0" y="0" width="142" height="48" rx="6"></rect><text class="tooltipLabel_p8TI" x="12" y="18">Infrastructure</text><text class="tooltipValue_IfuM" x="12" y="36">24</text><text class="tooltipDetail_YoSy" x="42" y="36">Cloud + routing</text></g></g></g></g></g></g><g class="interactiveOrbit_dIJo" tabindex="0" aria-label="Automation: Scripts + workflows" style="--orbit-radius:85px;--orbit-scale:0.5294117647058824;--orbit-scale-inverse:1.8888888888888888;--orbit-speed:20s;--orbit-delay:-11s"><ellipse class="orbit_wD_p orbitTrack_oujm" cx="260" cy="160" rx="85" ry="45"></ellipse><ellipse class="orbitHitTarget_BUdk" cx="260" cy="160" rx="85" ry="45"></ellipse><g class="planetOrbit_VJm4"><g class="planetOrbitSpin_W3x6"><g class="planetRadius_QiO1"><g class="planetCounterScale_u_LC"><circle class="planetBody_MPTj planetGreen_Uwng" cx="0" cy="0" r="7"></circle><g class="planetTooltip_frYP" transform="translate(18 -58)"><path class="tooltipStem_tZkS" d="M0 45L-10 54"></path><rect class="tooltipBox_wHaF" x="0" y="0" width="142" height="48" rx="6"></rect><text class="tooltipLabel_p8TI" x="12" y="18">Automation</text><text class="tooltipValue_IfuM" x="12" y="36">47</text><text class="tooltipDetail_YoSy" x="42" y="36">Scripts + workflows</text></g></g></g></g></g></g><g class="interactiveOrbit_dIJo" tabindex="0" aria-label="Visualizations: Diagrams + tools" style="--orbit-radius:200px;--orbit-scale:0.455;--orbit-scale-inverse:2.197802197802198;--orbit-speed:42s;--orbit-delay:-27s"><ellipse class="guideOrbit_XX6u orbitTrack_oujm" cx="260" cy="160" rx="200" ry="91"></ellipse><ellipse class="orbitHitTarget_BUdk" cx="260" cy="160" rx="200" ry="91"></ellipse><g class="planetOrbit_VJm4"><g class="planetOrbitSpin_W3x6"><g class="planetRadius_QiO1"><g class="planetCounterScale_u_LC"><circle class="planetBody_MPTj planetCyan_heN4" cx="0" cy="0" r="8"></circle><g class="planetTooltip_frYP" transform="translate(18 -58)"><path class="tooltipStem_tZkS" d="M0 45L-10 54"></path><rect class="tooltipBox_wHaF" x="0" y="0" width="142" height="48" rx="6"></rect><text class="tooltipLabel_p8TI" x="12" y="18">Visualizations</text><text class="tooltipValue_IfuM" x="12" y="36">09</text><text class="tooltipDetail_YoSy" x="42" y="36">Diagrams + tools</text></g></g></g></g></g></g><g class="interactiveOrbit_dIJo" tabindex="0" aria-label="Labs: Utilities + prototypes" style="--orbit-radius:48px;--orbit-scale:0.625;--orbit-scale-inverse:1.6;--orbit-speed:11s;--orbit-delay:-6s"><ellipse class="innerOrbit_I_KM orbitTrack_oujm" cx="260" cy="160" rx="48" ry="30"></ellipse><ellipse class="orbitHitTarget_BUdk" cx="260" cy="160" rx="48" ry="30"></ellipse><g class="planetOrbit_VJm4"><g class="planetOrbitSpin_W3x6"><g class="planetRadius_QiO1"><g class="planetCounterScale_u_LC"><circle class="planetBody_MPTj planetSmall_l67L" cx="0" cy="0" r="5"></circle><g class="planetTooltip_frYP" transform="translate(18 -58)"><path class="tooltipStem_tZkS" d="M0 45L-10 54"></path><rect class="tooltipBox_wHaF" x="0" y="0" width="142" height="48" rx="6"></rect><text class="tooltipLabel_p8TI" x="12" y="18">Labs</text><text class="tooltipValue_IfuM" x="12" y="36">18</text><text class="tooltipDetail_YoSy" x="42" y="36">Utilities + prototypes</text></g></g></g></g></g></g></g></svg></div><div class="statusStrip_IH8W" aria-label="System status"><span><i aria-hidden="true"></i> System Status</span><span>All Systems Nominal</span><span>Last Update 00:12:48 UTC</span></div></div></section><section class="container featuredSection_QZwy" aria-labelledby="featured-explorations-heading"><div class="featuredHeader_jGRf"><h2 id="featured-explorations-heading">// Featured Explorations</h2><a class="viewAllLink_NUd6" href="/labs">View All <span aria-hidden="true">-&gt;</span></a></div><div class="featuredGrid_N7Ro"><a class="featureCard_Jbd_" href="/labs/subnet-tools"><span class="featureIcon_qaBM" aria-hidden="true"><span></span></span><div class="featureCardBody_ZCO8"><h3>Subnet Visualizer</h3><p>Interactive IPv4 subnet calculator and network range explorer.</p></div><span></span></a><a class="featureCard_Jbd_" href="/labs/finance-tools/compound-interest-calculator"><span class="featureIcon_qaBM" aria-hidden="true"><span></span></span><div class="featureCardBody_ZCO8"><h3>Compound Interest Calculator</h3><p>Model recurring contributions, growth assumptions, and long-term outcomes.</p></div><span></span></a><a class="featureCard_Jbd_" href="/labs/stable-diffusion-gallery"><span class="featureIcon_qaBM" aria-hidden="true"><span></span></span><div class="featureCardBody_ZCO8"><h3>Stable Diffusion Gallery</h3><p>A rotating gallery of generated imagery, prompts, and visual experiments.</p></div><span></span></a><a class="featureCard_Jbd_" href="/blog/aws-reinvent-2023"><span class="featureIcon_qaBM" aria-hidden="true"><span></span></span><div class="featureCardBody_ZCO8"><h3>AWS re:Invent 2023</h3><p>Conference notes and takeaways from cloud infrastructure sessions.</p></div><span></span></a><a class="featureCard_Jbd_" href="/blog/2023/09/16/stable-diffusion-in-docker"><span class="featureIcon_qaBM" aria-hidden="true"><span></span></span><div class="featureCardBody_ZCO8"><h3>Stable Diffusion in Docker</h3><p>Running image generation workloads locally with containerized tooling.</p></div><span></span></a><a class="featureCard_Jbd_" href="/blog/2021/12/15/securing-a-web-application"><span class="featureIcon_qaBM" aria-hidden="true"><span></span></span><div class="featureCardBody_ZCO8"><h3>Securing a Web Application</h3><p>Practical notes on hardening a web application and reducing risk.</p></div><span></span></a></div></section></main></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Quick Links</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/intro">Docs</a></li><li class="footer__item"><a class="footer__link-item" href="/labs">Labs</a></li><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Social Links</div><ul class="footer__items clean-list"><li class="footer__item">
                                <a class="footer-social-link" href="https://github.com/ryanreece">
                                    <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.17-3.36-1.17-.46-1.16-1.11-1.47-1.11-1.47-.91-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.87 1.52 2.34 1.07 2.91.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.92 0-1.11.38-2 1.03-2.71-.1-.25-.45-1.29.1-2.64 0 0 .84-.27 2.75 1.02A9.58 9.58 0 0 1 12 6.99c.85 0 1.71.11 2.51.35 1.91-1.29 2.75-1.02 2.75-1.02.55 1.35.2 2.39.1 2.64.65.71 1.03 1.6 1.03 2.71 0 3.82-2.34 4.66-4.57 4.91.36.31.68.92.68 1.85V21c0 .27.16.59.67.5A10 10 0 0 0 22 12 10 10 0 0 0 12 2Z"/></svg>
                                    <span>GitHub</span>
                                </a>
                            </li><li class="footer__item">
                                <a class="footer-social-link" href="https://www.linkedin.com/in/ryan-reece/">
                                    <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M19 3A2 2 0 0 1 21 5v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14M8.34 17.34v-7.5H5.84v7.5h2.5M7.09 8.8a1.45 1.45 0 1 0 0-2.9 1.45 1.45 0 0 0 0 2.9m10.25 8.54v-4.11c0-2.2-1.17-3.22-2.73-3.22-1.26 0-1.82.69-2.13 1.18v-1.35H9.98v7.5h2.5v-3.71c0-.2.01-.39.07-.53.18-.39.58-.8 1.25-.8.88 0 1.24.67 1.24 1.66v3.88h2.3Z"/></svg>
                                    <span>LinkedIn</span>
                                </a>
                            </li><li class="footer__item">
                                <a class="footer-social-link" href="https://x.com/ryanreece">
                                    <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2.25h3.37l-7.36 8.41 8.66 11.45h-6.78l-5.31-6.94-6.07 6.94H2.03l7.87-9-8.3-10.86h6.96l4.79 6.34 5.55-6.34Zm-1.18 17.84h1.87L7.54 4.16H5.53l12.19 15.93Z"/></svg>
                                    <span>X</span>
                                </a>
                            </li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Misc</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/legal/privacy-policy">Privacy Policy</a></li><li class="footer__item"><a class="footer__link-item" href="/legal/terms-of-service">Terms of Service</a></li><li class="footer__item"><a class="footer__link-item" href="/legal/disclaimer">Disclaimer</a></li><li class="footer__item"><a class="footer__link-item" href="/status">Status</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Connect</div><ul class="footer__items clean-list"><li class="footer__item">
                                <div class="footer-connect-card">
                                    <div class="footer-connect-main">
                                        <span class="footer-connect-icon" aria-hidden="true">
                                            <svg viewBox="0 0 24 24"><path d="M20 4H4c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6c0-1.11-.9-2-2-2m0 4-8 5-8-5V6l8 5 8-5v2Z"/></svg>
                                        </span>
                                        <div>
                                            <strong>Say Hello</strong>
                                            <p>Questions, collaborations, or just want to connect?</p>
                                        </div>
                                    </div>
                                    <a class="footer-connect-button" href="https://github.com/ryanreece">Reach out <span aria-hidden="true">-&gt;</span></a>
                                </div>
                            </li></ul></div></div><div class="footer-system-grid" aria-label="Site system status"><div class="footer-system-item"><span class="footer-system-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm6.93 9h-3.02a15.7 15.7 0 0 0-1.2-5.01A8.02 8.02 0 0 1 18.93 11ZM12 4.04c.83 1.2 1.57 3.15 1.84 6.96h-3.68C10.43 7.19 11.17 5.24 12 4.04ZM4.07 13h3.02c.14 1.97.55 3.68 1.2 5.01A8.02 8.02 0 0 1 4.07 13Zm3.02-2H4.07a8.02 8.02 0 0 1 4.22-5.01A15.7 15.7 0 0 0 7.09 11ZM12 19.96c-.83-1.2-1.57-3.15-1.84-6.96h3.68c-.27 3.81-1.01 5.76-1.84 6.96Zm2.71-1.95c.65-1.33 1.06-3.04 1.2-5.01h3.02a8.02 8.02 0 0 1-4.22 5.01Z"></path></svg></span><span class="footer-system-copy"><span>Location</span><strong>PDX • USA</strong></span></div><div class="footer-system-item"><span class="footer-system-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z"></path></svg></span><span class="footer-system-copy"><span>Coordinates</span><strong>45.5853° N, 122.5917° W</strong></span></div><div class="footer-system-item"><span class="footer-system-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="M12 2a10 10 0 1 0 10 10A10.01 10.01 0 0 0 12 2Zm1 10.58 3.4 2.02-1 1.72L11 13.7V6h2v6.58Z"></path></svg></span><span class="footer-system-copy"><span>System Time</span><strong class="footer-system-time">Syncing UTC</strong></span></div><div class="footer-system-item"><span class="footer-system-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="M12 18.5 8.5 15a4.95 4.95 0 0 1 7 0L12 18.5Zm6.36-6.36-1.41 1.41a7 7 0 0 0-9.9 0l-1.41-1.41a9 9 0 0 1 12.72 0Zm2.83-2.83-1.42 1.41a11 11 0 0 0-15.54 0L2.81 9.31a13 13 0 0 1 18.38 0Z"></path></svg></span><span class="footer-system-copy"><span>Connected To</span><strong>Reece_Net</strong></span></div><a class="footer-system-item footer-system-item--status footer-system-item--checking" href="/status"><span class="footer-system-icon footer-system-icon--matrix" aria-hidden="true"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span><span class="footer-system-copy"><span>Status</span><strong>Checking API</strong></span><span class="footer-system-led" aria-hidden="true"></span></a></div><div class="footer__bottom text--center"><div class="footer__copyright">© 2026 Reece_AI. All rights reserved.</div></div></div></footer></div>
</body>
</html>