Files
nexus/sreweekly/articles/530/05-ai-and-sre.html

404 lines
70 KiB
HTML

<!DOCTYPE html>
<html dir="ltr" lang="en-CA" class="no-js">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="profile" href="https://gmpg.org/xfn/11">
<script>
(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);
//# sourceURL=twentysixteen_javascript_detection
</script>
<title>AI and SRE | bill duncan's blog</title>
<!-- All in One SEO 5.0.1.1 - aioseo.com -->
<meta name="description" content="AI and SRE: The Same Force Cuts Both Ways I&#039;ve spent most of my career in the &quot;in-between&quot; role -- the one that sits between software engineering and operations, making sure the systems that carry the weight of the business stay up, stay fast, and stay honest about what they&#039;re actually doing. Listen, follow the" />
<meta name="robots" content="max-image-preview:large" />
<meta name="author" content="bduncan"/>
<link rel="canonical" href="https://billduncan.org/ai-and-sre/" />
<meta name="generator" content="All in One SEO (AIOSEO) 5.0.1.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/billduncan.org\/ai-and-sre\/#article","name":"AI and SRE | bill duncan's blog","headline":"AI and SRE","author":{"@id":"https:\/\/billduncan.org\/author\/ve3ied\/#author"},"publisher":{"@id":"https:\/\/billduncan.org\/#organization"},"datePublished":"2026-08-06T12:01:22-04:00","dateModified":"2026-08-07T00:48:09-04:00","inLanguage":"en-CA","mainEntityOfPage":{"@id":"https:\/\/billduncan.org\/ai-and-sre\/#webpage"},"isPartOf":{"@id":"https:\/\/billduncan.org\/ai-and-sre\/#webpage"},"articleSection":"AI, SRE"},{"@type":"BreadcrumbList","@id":"https:\/\/billduncan.org\/ai-and-sre\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/billduncan.org#listItem","position":1,"name":"Home","item":"https:\/\/billduncan.org","nextItem":{"@type":"ListItem","@id":"https:\/\/billduncan.org\/category\/sre\/#listItem","name":"SRE"}},{"@type":"ListItem","@id":"https:\/\/billduncan.org\/category\/sre\/#listItem","position":2,"name":"SRE","item":"https:\/\/billduncan.org\/category\/sre\/","nextItem":{"@type":"ListItem","@id":"https:\/\/billduncan.org\/ai-and-sre\/#listItem","name":"AI and SRE"},"previousItem":{"@type":"ListItem","@id":"https:\/\/billduncan.org#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/billduncan.org\/ai-and-sre\/#listItem","position":3,"name":"AI and SRE","previousItem":{"@type":"ListItem","@id":"https:\/\/billduncan.org\/category\/sre\/#listItem","name":"SRE"}}]},{"@type":"Organization","@id":"https:\/\/billduncan.org\/#organization","name":"bill duncan's blog","description":"Performance Matters (and Other Tidbits from the Trenches)","url":"https:\/\/billduncan.org\/"},{"@type":"Person","@id":"https:\/\/billduncan.org\/author\/ve3ied\/#author","url":"https:\/\/billduncan.org\/author\/ve3ied\/","name":"bduncan","image":{"@type":"ImageObject","@id":"https:\/\/billduncan.org\/ai-and-sre\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/9ce8613e8528c4c7ee8688ca76ed48b04e3bca24bc5aab38416266ea89876147?s=96&d=mm&r=pg","width":96,"height":96,"caption":"bduncan"}},{"@type":"WebPage","@id":"https:\/\/billduncan.org\/ai-and-sre\/#webpage","url":"https:\/\/billduncan.org\/ai-and-sre\/","name":"AI and SRE | bill duncan's blog","description":"AI and SRE: The Same Force Cuts Both Ways I've spent most of my career in the \"in-between\" role -- the one that sits between software engineering and operations, making sure the systems that carry the weight of the business stay up, stay fast, and stay honest about what they're actually doing. Listen, follow the","inLanguage":"en-CA","isPartOf":{"@id":"https:\/\/billduncan.org\/#website"},"breadcrumb":{"@id":"https:\/\/billduncan.org\/ai-and-sre\/#breadcrumblist"},"author":{"@id":"https:\/\/billduncan.org\/author\/ve3ied\/#author"},"creator":{"@id":"https:\/\/billduncan.org\/author\/ve3ied\/#author"},"datePublished":"2026-08-06T12:01:22-04:00","dateModified":"2026-08-07T00:48:09-04:00"},{"@type":"WebSite","@id":"https:\/\/billduncan.org\/#website","url":"https:\/\/billduncan.org\/","name":"bill duncan's blog","description":"Performance Matters (and Other Tidbits from the Trenches)","inLanguage":"en-CA","publisher":{"@id":"https:\/\/billduncan.org\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//cdn.trustedsite.com' />
<link rel='dns-prefetch' href='//platform-api.sharethis.com' />
<link rel="alternate" type="application/rss+xml" title="bill duncan&#039;s blog &raquo; Feed" href="https://billduncan.org/feed/" />
<link rel="alternate" type="application/rss+xml" title="bill duncan&#039;s blog &raquo; Comments Feed" href="https://billduncan.org/comments/feed/" />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://billduncan.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fbillduncan.org%2Fai-and-sre%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://billduncan.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fbillduncan.org%2Fai-and-sre%2F&#038;format=xml" />
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<link rel='stylesheet' id='wp-quicklatex-format-css' href='https://billduncan.org/wp-content/plugins/wp-quicklatex/css/quicklatex-format.css?ver=7.0.4' media='all' />
<style id="wp-emoji-styles-inline-css">
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
</style>
<style id="classic-theme-styles-inline-css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
/*# sourceURL=/wp-includes/css/classic-themes.min.css */
</style>
<link rel='stylesheet' id='font-awesome-css' href='https://billduncan.org/wp-content/plugins/contact-widgets/assets/css/font-awesome.min.css?ver=4.7.0' media='all' />
<style id="site-designer-shared-pattern-classes-inline-css">
/* Dark cover/section overlay + on-dark text. */
body .wp-site-blocks .is-style-overlay-dark .wp-block-cover__background { background-color: var(--wp--preset--color--base-3); color: var(--wp--preset--color--contrast-3); }
.wp-block-cover.is-style-overlay-dark .wp-block-cover__background.has-background-dim { opacity: 0.50 !important; }
:is(.wp-block-designsetgo-section, .wp-block-designsetgo-scroll-slides).is-style-overlay-dark { --dsgo-overlay-color: var(--wp--preset--color--base-3); --dsgo-overlay-opacity: 0.50; color: var(--wp--preset--color--contrast-3); }
.dsgo-image-accordion-item.is-style-overlay-dark { --dsgo-overlay-color: var(--wp--preset--color--base-3); }
.wp-block-group.has-background.is-style-overlay-dark { box-shadow: inset 0 0 0 9999px color-mix(in srgb, var(--wp--preset--color--base-3) 50%, transparent); }
body .wp-site-blocks .is-style-overlay-dark, body .wp-site-blocks .is-style-on-dark { --dsgo-text-color: var(--wp--preset--color--contrast-3); color: var(--wp--preset--color--contrast-3) !important; }
body .wp-site-blocks .is-style-overlay-dark :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,cite), body .wp-site-blocks .is-style-on-dark :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,cite) { color: var(--wp--preset--color--contrast-3) !important; }
/* Solid dark section background + light text. */
.is-style-bg-dark { background-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.is-style-bg-dark a { color: var(--wp--preset--color--base); }
/*# sourceURL=site-designer-shared-pattern-classes-inline-css */
</style>
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--dark-gray: #1a1a1a;--wp--preset--color--medium-gray: #686868;--wp--preset--color--light-gray: #e5e5e5;--wp--preset--color--blue-gray: #4d545c;--wp--preset--color--bright-blue: #007acc;--wp--preset--color--light-blue: #9adffd;--wp--preset--color--dark-brown: #402b30;--wp--preset--color--medium-brown: #774e24;--wp--preset--color--dark-red: #640c1f;--wp--preset--color--bright-red: #ff675f;--wp--preset--color--yellow: #ffef8e;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-dark-gray-color{color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-color{color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !important;}.has-blue-gray-color{color: var(--wp--preset--color--blue-gray) !important;}.has-bright-blue-color{color: var(--wp--preset--color--bright-blue) !important;}.has-light-blue-color{color: var(--wp--preset--color--light-blue) !important;}.has-dark-brown-color{color: var(--wp--preset--color--dark-brown) !important;}.has-medium-brown-color{color: var(--wp--preset--color--medium-brown) !important;}.has-dark-red-color{color: var(--wp--preset--color--dark-red) !important;}.has-bright-red-color{color: var(--wp--preset--color--bright-red) !important;}.has-yellow-color{color: var(--wp--preset--color--yellow) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-background-color{background-color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !important;}.has-blue-gray-background-color{background-color: var(--wp--preset--color--blue-gray) !important;}.has-bright-blue-background-color{background-color: var(--wp--preset--color--bright-blue) !important;}.has-light-blue-background-color{background-color: var(--wp--preset--color--light-blue) !important;}.has-dark-brown-background-color{background-color: var(--wp--preset--color--dark-brown) !important;}.has-medium-brown-background-color{background-color: var(--wp--preset--color--medium-brown) !important;}.has-dark-red-background-color{background-color: var(--wp--preset--color--dark-red) !important;}.has-bright-red-background-color{background-color: var(--wp--preset--color--bright-red) !important;}.has-yellow-background-color{background-color: var(--wp--preset--color--yellow) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-border-color{border-color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-blue-gray-border-color{border-color: var(--wp--preset--color--blue-gray) !important;}.has-bright-blue-border-color{border-color: var(--wp--preset--color--bright-blue) !important;}.has-light-blue-border-color{border-color: var(--wp--preset--color--light-blue) !important;}.has-dark-brown-border-color{border-color: var(--wp--preset--color--dark-brown) !important;}.has-medium-brown-border-color{border-color: var(--wp--preset--color--medium-brown) !important;}.has-dark-red-border-color{border-color: var(--wp--preset--color--dark-red) !important;}.has-bright-red-border-color{border-color: var(--wp--preset--color--bright-red) !important;}.has-yellow-border-color{border-color: var(--wp--preset--color--yellow) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
/*# sourceURL=global-styles-inline-css */
</style>
<link rel='stylesheet' id='mc4wp-form-themes-css' href='https://billduncan.org/wp-content/plugins/mailchimp-for-wp/assets/css/form-themes.css?ver=4.14.0' media='all' />
<link rel='stylesheet' id='wp-components-css' href='https://billduncan.org/wp-includes/css/dist/components/style.min.css?ver=7.0.4' media='all' />
<link rel='stylesheet' id='godaddy-styles-css' href='https://billduncan.org/wp-content/mu-plugins/vendor/wpex/godaddy-launch/includes/Dependencies/GoDaddy/Styles/build/latest.css?ver=2.0.2' media='all' />
<link rel='stylesheet' id='twentysixteen-fonts-css' href='https://billduncan.org/wp-content/themes/twentysixteen/fonts/merriweather-plus-montserrat-plus-inconsolata.css?ver=20230328' media='all' />
<link rel='stylesheet' id='genericons-css' href='https://billduncan.org/wp-content/themes/twentysixteen/genericons/genericons.css?ver=20251101' media='all' />
<link rel='stylesheet' id='twentysixteen-style-css' href='https://billduncan.org/wp-content/themes/twentysixteen/style.css?ver=20260819' media='all' />
<link rel='stylesheet' id='twentysixteen-block-style-css' href='https://billduncan.org/wp-content/themes/twentysixteen/css/blocks.css?ver=20260105' media='all' />
<script id="jquery-core-js" src="https://billduncan.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
<script id="jquery-migrate-js" src="https://billduncan.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
<script id="twentysixteen-script-js-extra">
var screenReaderText = {"expand":"expand child menu","collapse":"collapse child menu"};
//# sourceURL=twentysixteen-script-js-extra
</script>
<script data-wp-strategy="defer" defer id="twentysixteen-script-js" src="https://billduncan.org/wp-content/themes/twentysixteen/js/functions.js?ver=20230629"></script>
<script id="googleanalytics-platform-sharethis-js" src="//platform-api.sharethis.com/js/sharethis.js#source=googleanalytics-wordpress#product=ga&#038;property=5b1f3e1fe9c37c00114cb833"></script>
<script id="wp-quicklatex-frontend-js" src="https://billduncan.org/wp-content/plugins/wp-quicklatex/js/wp-quicklatex-frontend.js?ver=1.0"></script>
<link rel="https://api.w.org/" href="https://billduncan.org/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://billduncan.org/wp-json/wp/v2/posts/1141" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://billduncan.org/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 7.0.4" />
<link rel='shortlink' href='https://billduncan.org/?p=1141' />
<script>
(function() {
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-120366658-1', 'auto');
ga('send', 'pageview');
})();
</script>
<style id="wp-site-designer-contrast-fallback"> .wp-block-group:not([data-dsgo-inline-bg]),.wp-block-column:not([data-dsgo-inline-bg]),.wp-block-columns:not([data-dsgo-inline-bg]){--dsgo-text-color:initial;} :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover:not(.has-text-color){color:var(--wp--preset--color--contrast-3) !important;--dsgo-text-color:var(--wp--preset--color--contrast-3);} body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h1:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h2:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h3:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h4:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h5:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h6:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) p:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) .wp-element-caption:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)){color:var(--dsgo-text-color,inherit) !important;} body .wp-site-blocks :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column)[data-dsgo-inline-bg] .wp-block-button:is([class*="is-style-outline"],[class*="is-style-secondary"]) .wp-element-button{color:var(--dsgo-text-color,inherit) !important;border-color:currentColor !important;}body .wp-site-blocks :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column)[data-dsgo-inline-bg] .wp-block-button:is([class*="is-style-outline"],[class*="is-style-secondary"]) .wp-element-button:hover{opacity:0.75;} body .wp-site-blocks [data-dsgo-inline-bg] h1:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h2:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h3:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h4:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h5:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h6:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] p:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] .wp-element-caption:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)){color:var(--dsgo-text-color,inherit) !important;} .wp-block-designsetgo-section.has-background:not([data-dsgo-inline-bg]):not(.has-text-color){color:var(--wp--preset--color--contrast);--dsgo-text-color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-5);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-3);color:var(--wp--preset--color--accent-2);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--accent-2);} :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--contrast);color:var(--wp--preset--color--base);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--base);} body .wp-site-blocks input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="image"]):not([type="hidden"]),body .wp-site-blocks textarea,body .wp-site-blocks select{background-color:var(--wp--preset--color--base);color:var(--wp--preset--color--contrast);border:1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 30%, transparent);} .wp-site-blocks input[type="submit"]:not(.wp-element-button),.wp-site-blocks button[type="submit"]:not(.wp-element-button){background-color:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--base);border-width:0;padding:12px 30px;font-family:inherit;font-size:var(--wp--preset--font-size--medium, 1rem);line-height:inherit;cursor:pointer;}</style>
<style id="site-designer-logo-constraints">
.wp-block-site-logo.is-default-size img {
width: auto;
height: auto;
max-width: 180px;
max-height: 80px;
}
.wp-block-site-logo img {
height: auto;
}
</style>
</head>
<body class="wp-singular post-template-default single single-post postid-1141 single-format-standard wp-embed-responsive wp-theme-twentysixteen">
<div id="page" class="site">
<div class="site-inner">
<a class="skip-link screen-reader-text" href="#content">
Skip to content </a>
<header id="masthead" class="site-header">
<div class="site-header-main">
<div class="site-branding">
<p class="site-title"><a href="https://billduncan.org/" rel="home" >bill duncan&#039;s blog</a></p>
<p class="site-description">Performance Matters (and Other Tidbits from the Trenches)</p>
</div><!-- .site-branding -->
<button id="menu-toggle" class="menu-toggle">Menu</button>
<div id="site-header-menu" class="site-header-menu">
<nav id="site-navigation" class="main-navigation" aria-label="Primary Menu">
<div class="menu-primary-menu-container"><ul id="menu-primary-menu" class="primary-menu"><li id="menu-item-15" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-15"><a href="https://billduncan.org">Home</a></li>
<li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13"><a href="https://billduncan.org/about/">About Me</a></li>
<li id="menu-item-12" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12"><a href="https://billduncan.org/contact/">Contact bill duncan</a></li>
<li id="menu-item-87" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-87"><a href="https://billduncan.org/references/">Links</a></li>
</ul></div> </nav><!-- .main-navigation -->
</div><!-- .site-header-menu -->
</div><!-- .site-header-main -->
<div class="header-image">
<a href="https://billduncan.org/" rel="home" >
<img src="https://billduncan.org/wp-content/uploads/2018/10/k05d1996-cropped.jpg" width="1198" height="280" alt="bill duncan&#039;s blog" sizes="(max-width: 709px) 85vw, (max-width: 909px) 81vw, (max-width: 1362px) 88vw, 1200px" srcset="https://billduncan.org/wp-content/uploads/2018/10/k05d1996-cropped.jpg 1198w, https://billduncan.org/wp-content/uploads/2018/10/k05d1996-cropped-300x70.jpg 300w, https://billduncan.org/wp-content/uploads/2018/10/k05d1996-cropped-768x179.jpg 768w, https://billduncan.org/wp-content/uploads/2018/10/k05d1996-cropped-1024x239.jpg 1024w" decoding="async" fetchpriority="high" /> </a>
</div><!-- .header-image -->
</header><!-- .site-header -->
<div id="content" class="site-content">
<div id="primary" class="content-area">
<main id="main" class="site-main">
<article id="post-1141" class="post-1141 post type-post status-publish format-standard hentry category-ai category-sre">
<header class="entry-header">
<h1 class="entry-title">AI and SRE</h1> </header><!-- .entry-header -->
<div class="entry-content">
<h1>AI and SRE: The Same Force Cuts Both Ways</h1>
<p>I&#8217;ve spent most of my career in the &#8220;in-between&#8221; role &#8212; the one that sits between software engineering and operations, making sure the systems that carry the weight of the business stay up, stay fast, and stay honest about what they&#8217;re actually doing. Listen, follow the data, don&#8217;t do anything you can&#8217;t undo quickly. That&#8217;s been the job for a couple of decades.</p>
<p>In the last year, the job changed more than it did in the previous ten.</p>
<h2>The pro: a week of work in an afternoon</h2>
<p>I&#8217;m not talking about autocomplete. I&#8217;m talking about handing a genuinely open-ended problem &#8212; &#8220;why did this pipeline start drifting eleven months ago and nobody noticed,&#8221; &#8220;here are forty repos, tell me which ones are safe to migrate first and why&#8221; &#8212; to an AI agent and getting back, in an hour or two, the kind of analysis that used to take a week of careful, interruption-prone human attention.</p>
<p>I&#8217;ve used this to cut a major cloud cost center by more than 90 percent, to untangle a production bug that had been quietly rotting for the better part of a year across a dozen services, and to review an entire database-upgrade runbook for gaps before we touched a production system carrying terabytes of customer data. None of that work was &#8220;prompt a chatbot and copy the answer.&#8221; It was iterative, it was checked against real logs and real output, and it was faster than anything I could have done alone at any point in my career.</p>
<p>I&#8217;ve seen AI correctly identify issues with merge requests, pull requests. I&#8217;ve seen it correctly root cause incidents in minutes that would have a much longer time to diagnose collecting all the information manually. (I&#8217;ve also seen cases where it made the wrong diagnosis too.)</p>
<p>That&#8217;s not a marginal improvement. That&#8217;s a different order of magnitude. And it&#8217;s real &#8212; I&#8217;m not describing a demo, I&#8217;m describing what shipped.</p>
<h2>The con: a week of work in an afternoon</h2>
<p>Here&#8217;s the part our industry is not saying out loud enough: the thing that makes AI a superpower for an individual engineer is the exact same thing that makes fewer engineers necessary. If one person with the right judgment and the right tools can now do what used to take a small team, the small team is the thing that&#8217;s at risk &#8212; not the work.</p>
<p>We&#8217;re already living in that answer. Layoffs in this field are accelerating again, and I don&#8217;t think that&#8217;s a coincidence of macroeconomics alone. Some of it is straightforward: the leverage AI gives a skilled engineer is being converted directly into headcount reduction, not just output growth. That&#8217;s not a hypothetical for me. It&#8217;s not a hypothetical for a lot of people reading this.</p>
<p>I don&#8217;t think wringing our hands about it changes anything. I do think pretending it isn&#8217;t happening is worse than useless &#8212; it leaves people unprepared for a transition that&#8217;s already well underway.</p>
<h2>So what&#8217;s actually different about the job now?</h2>
<p>If the leverage is real in both directions, the question worth asking isn&#8217;t &#8220;will AI take SRE jobs&#8221; &#8212; some of that has already happened, and more of it will. The question is what part of the job doesn&#8217;t compress the same way.</p>
<p>A few things I keep coming back to:</p>
<h3>Verification doesn&#8217;t get automated away &#8212; it gets more important.</h3>
<p>AI output is confident and plausible whether or not it&#8217;s correct. The instinct that&#8217;s always separated a good SRE from a dangerous one &#8212; don&#8217;t assert a root cause ahead of the evidence, widen the time window before trusting a correlation, verify the actual numbers instead of estimating &#8212; matters more now, not less, because the volume of plausible-sounding output you have to check has gone up by an order of magnitude too.</p>
<p>The bottleneck moved from &#8220;can we generate an answer&#8221; to &#8220;can we trust this one,&#8221; and that second skill is still entirely human.</p>
<h3>Judgment about what to build, and what <em>not</em> to automate, gets scarcer and more valuable.</h3>
<p>Anyone can now generate a script. Knowing which problem is actually worth solving, what the blast radius is if it&#8217;s wrong, and when the &#8220;clever&#8221; fix is a trap &#8212; that&#8217;s still earned the hard way, through incidents you&#8217;ve lived through.</p>
<h3>The work shifts from doing to reviewing, and that&#8217;s a harder skill to teach.</h3>
<p>Reading someone else&#8217;s (or something else&#8217;s) work critically, catching the plausible-but-wrong answer, knowing which five lines of a five-hundred-line diff actually matter &#8212; that was always a senior skill. It&#8217;s now most of the job, for anyone using these tools seriously.</p>
<h3>Communication and trust go up in value as raw output gets cheap.</h3>
<p>When everyone can produce more, the differentiator becomes who people trust to have checked it, and who can explain a tradeoff clearly enough that a room full of stakeholders can make a fast, confident decision. That&#8217;s always been true in aviation &#8212; the checklist doesn&#8217;t fly the plane, the pilot who knows when to deviate from it does &#8212; and it&#8217;s becoming just as true here.</p>
<h2>Where I land</h2>
<p>I&#8217;m not going to pretend this is a comfortable transition, for me or for anyone else in this field right now. The pace of layoffs is real, and anyone telling you AI is purely additive to the job market isn&#8217;t looking at the same data I am.</p>
<p>But I also can&#8217;t unsee what&#8217;s now possible. A week of work in an afternoon isn&#8217;t a slogan for me, it&#8217;s what happened, repeatedly, on real production systems. The honest position is that both things are true at once: this is a genuine force multiplier, and it is a genuine threat to how many of us the industry needs. Pretending otherwise, in either direction, doesn&#8217;t serve anyone.</p>
<p>We can&#8217;t put the genie back in the bottle. There is a real cost; a human cost and the environmental costs.</p>
<p>What I&#8217;m doing about it is the same thing I&#8217;d tell anyone to do with any new tool that changes the shape of a system: <em>don&#8217;t assume, follow the data, and don&#8217;t do anything you can&#8217;t undo quickly</em> &#8212; including your assumptions about your own career!</p>
</div><!-- .entry-content -->
<footer class="entry-footer">
<span class="byline"><img alt='' src='https://secure.gravatar.com/avatar/9ce8613e8528c4c7ee8688ca76ed48b04e3bca24bc5aab38416266ea89876147?s=49&#038;d=mm&#038;r=pg' srcset='https://secure.gravatar.com/avatar/9ce8613e8528c4c7ee8688ca76ed48b04e3bca24bc5aab38416266ea89876147?s=98&#038;d=mm&#038;r=pg 2x' class='avatar avatar-49 photo' height='49' width='49' decoding='async'/><span class="screen-reader-text">Author </span><span class="author vcard"><a class="url fn n" href="https://billduncan.org/author/ve3ied/">bduncan</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://billduncan.org/ai-and-sre/" rel="bookmark"><time class="entry-date published" datetime="2026-08-06T12:01:22-04:00">2026-08-06</time><time class="updated" datetime="2026-08-07T00:48:09-04:00">2026-08-07</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://billduncan.org/category/ai/" rel="category tag">AI</a>, <a href="https://billduncan.org/category/sre/" rel="category tag">SRE</a></span> </footer><!-- .entry-footer -->
</article><!-- #post-1141 -->
<nav class="navigation post-navigation" aria-label="Posts">
<h2 class="screen-reader-text">Post navigation</h2>
<div class="nav-links"><div class="nav-previous"><a href="https://billduncan.org/openssl-wrapper-script/" rel="prev"><span class="meta-nav" aria-hidden="true">Previous</span> <span class="screen-reader-text">Previous post:</span> <span class="post-title">openssl wrapper script</span></a></div><div class="nav-next"><a href="https://billduncan.org/type-conversion/" rel="next"><span class="meta-nav" aria-hidden="true">Next</span> <span class="screen-reader-text">Next post:</span> <span class="post-title">Type Conversion</span></a></div></div>
</nav>
</main><!-- .site-main -->
</div><!-- .content-area -->
<aside id="secondary" class="sidebar widget-area">
<section id="search-2" class="widget widget_search">
<form role="search" method="get" class="search-form" action="https://billduncan.org/">
<label>
<span class="screen-reader-text">
Search for: </span>
<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" />
</label>
<button type="submit" class="search-submit"><span class="screen-reader-text">
Search </span></button>
</form>
</section>
<section id="recent-posts-2" class="widget widget_recent_entries">
<h2 class="widget-title">Recent Posts</h2><nav aria-label="Recent Posts">
<ul>
<li>
<a href="https://billduncan.org/type-conversion/">Type Conversion</a>
</li>
<li>
<a href="https://billduncan.org/ai-and-sre/" aria-current="page">AI and SRE</a>
</li>
<li>
<a href="https://billduncan.org/openssl-wrapper-script/">openssl wrapper script</a>
</li>
</ul>
</nav></section><section id="archives-2" class="widget widget_archive"><h2 class="widget-title">Archives</h2><nav aria-label="Archives">
<ul>
<li><a href='https://billduncan.org/2026/08/'>August 2026</a></li>
<li><a href='https://billduncan.org/2023/04/'>April 2023</a></li>
<li><a href='https://billduncan.org/2023/01/'>January 2023</a></li>
<li><a href='https://billduncan.org/2022/09/'>September 2022</a></li>
<li><a href='https://billduncan.org/2022/08/'>August 2022</a></li>
<li><a href='https://billduncan.org/2021/07/'>July 2021</a></li>
<li><a href='https://billduncan.org/2021/02/'>February 2021</a></li>
<li><a href='https://billduncan.org/2020/12/'>December 2020</a></li>
<li><a href='https://billduncan.org/2020/07/'>July 2020</a></li>
<li><a href='https://billduncan.org/2020/06/'>June 2020</a></li>
<li><a href='https://billduncan.org/2020/05/'>May 2020</a></li>
<li><a href='https://billduncan.org/2020/04/'>April 2020</a></li>
<li><a href='https://billduncan.org/2020/03/'>March 2020</a></li>
<li><a href='https://billduncan.org/2020/02/'>February 2020</a></li>
<li><a href='https://billduncan.org/2019/12/'>December 2019</a></li>
<li><a href='https://billduncan.org/2019/11/'>November 2019</a></li>
<li><a href='https://billduncan.org/2019/10/'>October 2019</a></li>
<li><a href='https://billduncan.org/2019/05/'>May 2019</a></li>
<li><a href='https://billduncan.org/2019/01/'>January 2019</a></li>
<li><a href='https://billduncan.org/2018/12/'>December 2018</a></li>
<li><a href='https://billduncan.org/2018/11/'>November 2018</a></li>
<li><a href='https://billduncan.org/2018/10/'>October 2018</a></li>
<li><a href='https://billduncan.org/2018/09/'>September 2018</a></li>
<li><a href='https://billduncan.org/2018/08/'>August 2018</a></li>
<li><a href='https://billduncan.org/2018/07/'>July 2018</a></li>
<li><a href='https://billduncan.org/2018/06/'>June 2018</a></li>
<li><a href='https://billduncan.org/2018/05/'>May 2018</a></li>
<li><a href='https://billduncan.org/2018/04/'>April 2018</a></li>
<li><a href='https://billduncan.org/2018/03/'>March 2018</a></li>
</ul>
</nav></section><section id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2><nav aria-label="Categories">
<ul>
<li class="cat-item cat-item-97"><a href="https://billduncan.org/category/ai/">AI</a> (1)
</li>
<li class="cat-item cat-item-87"><a href="https://billduncan.org/category/aviation/">Aviation</a> (8)
</li>
<li class="cat-item cat-item-12"><a href="https://billduncan.org/category/code-bits/">Code Bits</a> (14)
</li>
<li class="cat-item cat-item-17"><a href="https://billduncan.org/category/data-corruption/">Data Corruption</a> (2)
</li>
<li class="cat-item cat-item-4"><a href="https://billduncan.org/category/detecting-performance-issues/">Detecting Performance Issues</a> (14)
</li>
<li class="cat-item cat-item-43"><a href="https://billduncan.org/category/devops/">devops</a> (27)
</li>
<li class="cat-item cat-item-11"><a href="https://billduncan.org/category/diagnosing-issues/">Diagnosing Issues</a> (9)
</li>
<li class="cat-item cat-item-51"><a href="https://billduncan.org/category/documentation/">Documentation</a> (5)
</li>
<li class="cat-item cat-item-67"><a href="https://billduncan.org/category/event-logs/">Event logs</a> (2)
</li>
<li class="cat-item cat-item-53"><a href="https://billduncan.org/category/geolocating/">Geolocating</a> (1)
</li>
<li class="cat-item cat-item-47"><a href="https://billduncan.org/category/golang/">golang</a> (1)
</li>
<li class="cat-item cat-item-16"><a href="https://billduncan.org/category/just-for-fun/">Just-for-Fun</a> (12)
</li>
<li class="cat-item cat-item-89"><a href="https://billduncan.org/category/k8s/">K8S</a> (2)
</li>
<li class="cat-item cat-item-68"><a href="https://billduncan.org/category/monitoring/">Monitoring</a> (4)
</li>
<li class="cat-item cat-item-58"><a href="https://billduncan.org/category/ot/">OT</a> (6)
</li>
<li class="cat-item cat-item-46"><a href="https://billduncan.org/category/problem-solving/">Problem Solving</a> (5)
</li>
<li class="cat-item cat-item-21"><a href="https://billduncan.org/category/r/">R</a> (2)
</li>
<li class="cat-item cat-item-60"><a href="https://billduncan.org/category/reading-week/">Reading Week</a> (6)
</li>
<li class="cat-item cat-item-78"><a href="https://billduncan.org/category/remotework/">RemoteWork</a> (2)
</li>
<li class="cat-item cat-item-44"><a href="https://billduncan.org/category/rtfm/">RTFM</a> (5)
</li>
<li class="cat-item cat-item-59"><a href="https://billduncan.org/category/security/">Security</a> (2)
</li>
<li class="cat-item cat-item-45"><a href="https://billduncan.org/category/sre/">SRE</a> (34)
</li>
<li class="cat-item cat-item-10"><a href="https://billduncan.org/category/system-performance/">System Performance</a> (13)
</li>
<li class="cat-item cat-item-1"><a href="https://billduncan.org/category/uncategorized/">Uncategorized</a> (1)
</li>
<li class="cat-item cat-item-61"><a href="https://billduncan.org/category/wfm/">WFM</a> (5)
</li>
</ul>
</nav></section><section id="archives-3" class="widget widget_archive"><h2 class="widget-title">Archives</h2><nav aria-label="Archives">
<ul>
<li><a href='https://billduncan.org/2026/08/'>August 2026</a></li>
<li><a href='https://billduncan.org/2023/04/'>April 2023</a></li>
<li><a href='https://billduncan.org/2023/01/'>January 2023</a></li>
<li><a href='https://billduncan.org/2022/09/'>September 2022</a></li>
<li><a href='https://billduncan.org/2022/08/'>August 2022</a></li>
<li><a href='https://billduncan.org/2021/07/'>July 2021</a></li>
<li><a href='https://billduncan.org/2021/02/'>February 2021</a></li>
<li><a href='https://billduncan.org/2020/12/'>December 2020</a></li>
<li><a href='https://billduncan.org/2020/07/'>July 2020</a></li>
<li><a href='https://billduncan.org/2020/06/'>June 2020</a></li>
<li><a href='https://billduncan.org/2020/05/'>May 2020</a></li>
<li><a href='https://billduncan.org/2020/04/'>April 2020</a></li>
<li><a href='https://billduncan.org/2020/03/'>March 2020</a></li>
<li><a href='https://billduncan.org/2020/02/'>February 2020</a></li>
<li><a href='https://billduncan.org/2019/12/'>December 2019</a></li>
<li><a href='https://billduncan.org/2019/11/'>November 2019</a></li>
<li><a href='https://billduncan.org/2019/10/'>October 2019</a></li>
<li><a href='https://billduncan.org/2019/05/'>May 2019</a></li>
<li><a href='https://billduncan.org/2019/01/'>January 2019</a></li>
<li><a href='https://billduncan.org/2018/12/'>December 2018</a></li>
<li><a href='https://billduncan.org/2018/11/'>November 2018</a></li>
<li><a href='https://billduncan.org/2018/10/'>October 2018</a></li>
<li><a href='https://billduncan.org/2018/09/'>September 2018</a></li>
<li><a href='https://billduncan.org/2018/08/'>August 2018</a></li>
<li><a href='https://billduncan.org/2018/07/'>July 2018</a></li>
<li><a href='https://billduncan.org/2018/06/'>June 2018</a></li>
<li><a href='https://billduncan.org/2018/05/'>May 2018</a></li>
<li><a href='https://billduncan.org/2018/04/'>April 2018</a></li>
<li><a href='https://billduncan.org/2018/03/'>March 2018</a></li>
</ul>
</nav></section> </aside><!-- .sidebar .widget-area -->
</div><!-- .site-content -->
<footer id="colophon" class="site-footer">
<nav class="main-navigation" aria-label="Footer Primary Menu">
<div class="menu-primary-menu-container"><ul id="menu-primary-menu-1" class="primary-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-15"><a href="https://billduncan.org">Home</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13"><a href="https://billduncan.org/about/">About Me</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12"><a href="https://billduncan.org/contact/">Contact bill duncan</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-87"><a href="https://billduncan.org/references/">Links</a></li>
</ul></div> </nav><!-- .main-navigation -->
<div class="site-info">
<span class="site-title"><a href="https://billduncan.org/" rel="home">bill duncan&#039;s blog</a></span>
<a href="https://wordpress.org/" class="imprint">
Proudly powered by WordPress </a>
</div><!-- .site-info -->
</footer><!-- .site-footer -->
</div><!-- .site-inner -->
</div><!-- .site -->
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/twentysixteen/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script async data-wp-strategy="async" id="trustedsite-badge-js" src="https://cdn.trustedsite.com/js/1.js"></script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://billduncan.org/wp-includes/js/wp-emoji-release.min.js?ver=7.0.4"}}
</script>
<script type="module">
/*! This file is auto-generated */
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
//# sourceURL=https://billduncan.org/wp-includes/js/wp-emoji-loader.min.js
</script>
</body>
</html>