diff --git a/404.html b/404.html
index f5e5435..8179e03 100644
--- a/404.html
+++ b/404.html
@@ -25,7 +25,7 @@
-
+
diff --git a/about/index.html b/about/index.html
index 229360c..eb6071b 100644
--- a/about/index.html
+++ b/about/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/assets/combined.min.52abaa1c566a5f26056218d5d2c41964dedac454973c4708d8fd787ebe241064.css b/assets/combined.min.f73dacb07c6ddf9167368a7bf357bd93b16a43acd38b08c7f88a7d65dc826522.css
similarity index 89%
rename from assets/combined.min.52abaa1c566a5f26056218d5d2c41964dedac454973c4708d8fd787ebe241064.css
rename to assets/combined.min.f73dacb07c6ddf9167368a7bf357bd93b16a43acd38b08c7f88a7d65dc826522.css
index b245d3d..ceffeae 100644
--- a/assets/combined.min.52abaa1c566a5f26056218d5d2c41964dedac454973c4708d8fd787ebe241064.css
+++ b/assets/combined.min.f73dacb07c6ddf9167368a7bf357bd93b16a43acd38b08c7f88a7d65dc826522.css
@@ -1 +1 @@
-*,::after,::before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;overflow-y:scroll;-webkit-text-size-adjust:100%;text-size-adjust:100%}a,button,body,h1,h2,h3,h4,h5,h6{color:var(--primary)}body{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:18px;line-height:1.6;word-break:break-word;background:var(--theme)}article,aside,figcaption,figure,header,hgroup,main,nav,section,table{display:block}h1,h2,h3,h4,h5,h6{line-height:1.2}h1,h2,h3,h4,h5,h6,p{margin-top:0;margin-bottom:0}ul{padding:0}a{text-decoration:none}body,figure,ul{margin:0}table{width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;word-break:keep-all}button,input,textarea{padding:0;font:inherit;background:0 0;border:0}input,textarea{outline:0}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 50px var(--theme)inset}img{display:block;max-width:100%}:root{--main-width:780px;--main-padding:1.4em;--main-padding-bottom:3rem;--caption-padding:calc(.25 * var(--main-padding));--header-top-gap:2rem;--header-bottom-gap:2rem;--header-menu-side-gap:.5rem;--header-menu-top-gap:1rem;--h1-margin-top:2rem;--h1-margin-bottom:1.5rem;--h2-margin-top:2rem;--h2-margin-bottom:1.5rem;--hx-margin-top:1.5rem;--hx-margin-bottom:1rem;--p-margin-top:1rem;--p-margin-bottom:1rem;--code-margin-top:2rem;--code-margin-bottom:2rem;--h1-font-size:2em;--h2-font-size:1.8em;--hx-font-size:1.3em;--p-font-size:1em;--p-line-height:1.5em;--caption-font-size:.8em;--li-indent:1.5rem;--ul-margin-top:1rem;--ul-margin-bottom:1rem;--toc-margin-top:2rem;--toc-margin-bottom:3rem;--code-padding:1.5rem;--code-border-radius:10px;--social-icons-bottom-margin:3rem;--footer-height:3rem;--content-height:calc(100vh - var(--footer-height));--table-cell-padding:.5rem;--table-margin-top:1.5rem;--table-margin-bottom:1.5rem}@media screen and (max-width:1024px){:root{--main-width:750px;--header-top-gap:1rem;--caption-padding:calc(.25 * var(--main-padding))}}@media screen and (max-width:640px){:root{--header-top-gap:1rem;--social-icons-bottom-margin:0rem;--caption-padding:calc(2 * var(--main-padding))}}.flex{display:flex}.bold{font-weight:700}.italic{font-style:italic}.small{font-size:medium}.monospace{font-family:monaspace}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-Light.woff2)format('woff2');font-weight:light;font-style:normal}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-LightItalic.woff2)format('woff2');font-weight:light;font-style:italic}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-SemiBold.woff2)format('woff2');font-weight:700;font-style:normal}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-SemiBoldItalic.woff2)format('woff2');font-weight:700;font-style:italic}@font-face{font-family:monaspace;src:url(/fonts/Monaspace/MonaspaceArgon-Regular.woff)format('woff');font-weight:400;font-style:normal}@font-face{font-family:monaspace;src:url(/fonts/Monaspace/MonaspaceArgon-SemiBold.woff)format('woff');font-weight:700;font-style:normal}html{scroll-behavior:smooth}body{font-family:literata;margin:auto;max-width:var(--main-width);padding-left:var(--main-padding);padding-right:var(--main-padding);color:var(--content-primary);background:var(--background)}.content{min-height:var(--content-height)!important}h1{margin-top:var(--h1-margin-top);margin-bottom:var(--h1-margin-bottom);font-size:var(--h1-font-size)}h2{margin-top:var(--h2-margin-top);margin-bottom:var(--h2-margin-bottom);font-size:var(--h2-font-size)}h3,h4,h5,h6{font-size:var(--hx-font-size);margin-top:var(--hx-margin-top);margin-bottom:var(--hx-margin-bottom)}p{margin-top:var(--p-margin-top);margin-bottom:var(--p-margin-bottom);font-size:var(--p-font-size);line-height:var(--p-line-height)}ul{margin-top:var(--ul-margin-top);margin-bottom:var(--ul-margin-bottom)}li{margin-left:var(--li-indent)}a{text-decoration:underline}pre{padding:var(--code-padding);border:1px solid var(--code-border);overflow:scroll;border-radius:var(--code-border-radius);margin-top:var(--code-margin-top);margin-bottom:var(--code-margin-bottom);background-color:var(--code-background)!important;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;line-height:1.3em}pre::-webkit-scrollbar{display:none}code span{display:inline!important}code{-webkit-font-smoothing:antialiased;-moz-font-feature-settings:"liga=1, dlig=1";-ms-font-feature-settings:"liga","dlig";-webkit-font-feature-settings:"liga","dlig";-o-font-feature-settings:"liga","dlig";font-feature-settings:"liga","dlig";font-variant-ligatures:contextual;font-family:monaspace;font-size:.9em;line-height:0}.katex-display{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none}.katex-display::-webkit-scrollbar{display:none}.footnotes{margin-top:3rem;border-style:none}hr{border:none;height:1px;background:var(--content-secondary);margin-top:2rem;margin-bottom:2rem}.header{padding-top:var(--header-top-gap);margin-bottom:var(--header-bottom-gap)}.header p{font-family:monospace;margin-top:var(--header-menu-top-gap);margin-right:var(--header-menu-side-gap)}.header-title{font-size:2.6em;font-weight:700;margin-bottom:0;margin-top:0}footer{font-size:small;display:flex;justify-content:center;align-items:center;max-height:var(--footer-height)}footer a{font-family:monaspace;margin-left:.2rem;margin-right:.2rem}.post-line{margin-bottom:.5rem;display:flex;align-items:baseline}.tag-line{margin-bottom:.5rem;display:flex;align-items:baseline}.post-line p{margin-top:0;margin-bottom:0}.line-date{font-size:small;font-family:monaspace;min-width:120px;max-width:120px;text-align:right;padding-right:1rem;margin-top:0;margin-bottom:0}.line-title{margin:0}.tag-title{margin:0}.line-summary{font-size:small;margin-top:.2rem!important;color:var(--content-secondary)}.list-container{padding-bottom:3rem}.pagination{display:flex;align-items:center;margin-top:1rem;margin-bottom:0;justify-content:center}.pagination-control{min-width:3rem;margin-left:.5rem;margin-right:.5rem;text-align:center;align-items:center}.page-number{min-width:3rem;margin-left:.5rem;margin-right:.5rem;display:flex;align-items:center;justify-content:center;align-items:center;font-weight:700}.social-icons{padding:12px 0;margin-bottom:var(--social-icons-bottom-margin)}.social-icons a{text-decoration:none}.social-icons a:not(:last-of-type){margin-inline-end:12px}.social-icons a svg{height:20px;width:20px}.single-intro-container{margin-top:1rem;margin-bottom:2rem}.single-title{margin-bottom:.5rem}.single-readtime{margin-top:.5rem;color:var(--content-secondary)}.single-summary{margin-bottom:0;color:var(--content-secondary)}.single-content{margin-bottom:5rem}.single-tags{margin-top:-1rem}.single-tags span{margin-right:.3rem}.single-pagination{margin-top:3rem;margin-bottom:3rem}.single-pagination a{margin-left:.4rem;margin-right:.4rem}.single-pagination hr{margin:0}.single-pagination-text{display:flex;justify-content:center;align-items:center;min-height:100%}.single-pagination-prev{min-width:50%;margin-top:1rem;margin-bottom:1rem;text-align:right}.single-pagination-next{min-width:50%;margin-top:1rem;margin-bottom:1rem;text-align:left}.single-pagination-container-next{display:flex;min-height:100%;padding:.5rem}.single-pagination-container-prev{display:flex;min-height:100%;padding:.5rem;float:right}.toc{font-size:var(--p-font-size);line-height:calc(.9 * var(--p-line-height));margin-top:var(--toc-margin-top);margin-bottom:var(--toc-margin-bottom)}.toc ul{margin-top:.1rem;margin-bottom:.1rem}.toc li{margin-top:.1rem;margin-bottom:.1rem}.autonumber{counter-reset:h2-counter 0}.autonumber h2{counter-increment:h2-counter 1;counter-reset:h3-counter 0}.autonumber h3{counter-increment:h3-counter 1;counter-reset:h4-counter 0}.autonumber h4{counter-increment:h4-counter 1}.autonumber h2:before{content:counter(h2-counter)"\00a0\00a0"}.autonumber h3:before{content:counter(h2-counter)"." counter(h3-counter)"\00a0\00a0"}.autonumber h4:before{content:counter(h2-counter)"." counter(h3-counter)"." counter(h4-counter)"\00a0\00a0"}.dark .img-light{display:none!important}.light .img-dark{display:none!important}.img-small div{display:flex;align-items:center;justify-content:center}.img-small img{scale:80%}.img-full div{display:flex;align-items:center;justify-content:center}.img-full img{width:100vw!important;max-width:100vw!important}.caption-container{display:flex;justify-content:center}figcaption{color:var(--content-secondary);padding-left:var(--caption-padding);padding-right:var(--caption-padding);font-size:var(--caption-font-size);margin-top:1rem;margin-bottom:1rem}.not-found{display:flex;align-items:center;justify-content:center}.not-found div{text-align:center}.not-found div h1{font-size:6rem;margin-bottom:3rem}.breadcrumbs{font-size:.8em;margin-bottom:calc(-.5 * var(--h1-margin-top))}.giscus{margin-top:3rem}.back-to-top{text-align:center;font-family:monaspace;font-size:small;margin-bottom:2rem}p code{background-color:var(--code-background);border-radius:3px;padding:2px}table{border-collapse:collapse;margin-top:var(--table-margin-top);margin-bottom:var(--table-margin-bottom);font-size:var(--p-font-size);line-height:var(--p-line-height);color:var(--content-primary)}th,td{padding:var(--table-cell-padding);border:1px solid var(--code-border);text-align:left}th{background-color:var(--code-background);font-weight:700}table code{background-color:var(--code-background);border-radius:3px;padding:2px}blockquote{margin:1.5rem;margin-left:0;margin-right:0;border-left:solid 2px;color:var(--content-secondary)}blockquote p{margin-left:1rem;margin-right:1rem}:root{--main-width:1024px}.header-title{position:relative;padding-left:56px}.header-title::before{content:"";position:absolute;border-radius:.25em;background-image:url(/images/headshot.jpg);background-position:50%;background-size:contain;background-repeat:no-repeat;background-color:#000;height:48px;width:48px;top:calc(50% - 24px);left:0}.intro a,.small>a{color:#15803d}.line-title>a,.single-content a,.single-pagination-text>a,.pagination-control>a{color:#15803d}.line-title>a{font-weight:700}p>code,li>code{white-space:nowrap;border-radius:.375rem;background-color:#e5e7eb;padding:.4rem;font-size:.875rem;line-height:1.25rem}:root{--content-primary:rgb(36, 36, 36);--content-secondary:rgb(117, 117, 117);--background:rgb(255, 255, 255);--code-background:rgb(249, 249, 249);--code-border:rgb(229, 229, 229)}.dark{--content-primary:rgb(218, 218, 218);--content-secondary:rgb(140, 140, 140);--background:rgb(20, 20, 20);--code-background:rgb(30, 30, 30);--code-border:rgb(50, 50, 50)}:root{--content-primary:rgb(36, 36, 36);--content-secondary:rgb(117, 117, 117);--background:rgb(255, 255, 255);--code-background:rgb(249, 249, 249);--code-border:rgb(229, 229, 229)}.dark{--content-primary:rgb(218, 218, 218);--content-secondary:rgb(140, 140, 140);--background:rgb(20, 20, 20);--code-background:rgb(30, 30, 30);--code-border:rgb(50, 50, 50)}
\ No newline at end of file
+*,::after,::before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;overflow-y:scroll;-webkit-text-size-adjust:100%;text-size-adjust:100%}a,button,body,h1,h2,h3,h4,h5,h6{color:var(--primary)}body{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:18px;line-height:1.6;word-break:break-word;background:var(--theme)}article,aside,figcaption,figure,header,hgroup,main,nav,section,table{display:block}h1,h2,h3,h4,h5,h6{line-height:1.2}h1,h2,h3,h4,h5,h6,p{margin-top:0;margin-bottom:0}ul{padding:0}a{text-decoration:none}body,figure,ul{margin:0}table{width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;word-break:keep-all}button,input,textarea{padding:0;font:inherit;background:0 0;border:0}input,textarea{outline:0}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 50px var(--theme)inset}img{display:block;max-width:100%}:root{--main-width:780px;--main-padding:1.4em;--main-padding-bottom:3rem;--caption-padding:calc(.25 * var(--main-padding));--header-top-gap:2rem;--header-bottom-gap:2rem;--header-menu-side-gap:.5rem;--header-menu-top-gap:1rem;--h1-margin-top:2rem;--h1-margin-bottom:1.5rem;--h2-margin-top:2rem;--h2-margin-bottom:1.5rem;--hx-margin-top:1.5rem;--hx-margin-bottom:1rem;--p-margin-top:1rem;--p-margin-bottom:1rem;--code-margin-top:2rem;--code-margin-bottom:2rem;--h1-font-size:2em;--h2-font-size:1.8em;--hx-font-size:1.3em;--p-font-size:1em;--p-line-height:1.5em;--caption-font-size:.8em;--li-indent:1.5rem;--ul-margin-top:1rem;--ul-margin-bottom:1rem;--toc-margin-top:2rem;--toc-margin-bottom:3rem;--code-padding:1.5rem;--code-border-radius:10px;--social-icons-bottom-margin:3rem;--footer-height:3rem;--content-height:calc(100vh - var(--footer-height));--table-cell-padding:.5rem;--table-margin-top:1.5rem;--table-margin-bottom:1.5rem}@media screen and (max-width:1024px){:root{--main-width:750px;--header-top-gap:1rem;--caption-padding:calc(.25 * var(--main-padding))}}@media screen and (max-width:640px){:root{--header-top-gap:1rem;--social-icons-bottom-margin:0rem;--caption-padding:calc(2 * var(--main-padding))}}.flex{display:flex}.bold{font-weight:700}.italic{font-style:italic}.small{font-size:medium}.monospace{font-family:monaspace}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-Light.woff2)format('woff2');font-weight:light;font-style:normal}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-LightItalic.woff2)format('woff2');font-weight:light;font-style:italic}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-SemiBold.woff2)format('woff2');font-weight:700;font-style:normal}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-SemiBoldItalic.woff2)format('woff2');font-weight:700;font-style:italic}@font-face{font-family:monaspace;src:url(/fonts/Monaspace/MonaspaceArgon-Regular.woff)format('woff');font-weight:400;font-style:normal}@font-face{font-family:monaspace;src:url(/fonts/Monaspace/MonaspaceArgon-SemiBold.woff)format('woff');font-weight:700;font-style:normal}html{scroll-behavior:smooth}body{font-family:literata;margin:auto;max-width:var(--main-width);padding-left:var(--main-padding);padding-right:var(--main-padding);color:var(--content-primary);background:var(--background)}.content{min-height:var(--content-height)!important}h1{margin-top:var(--h1-margin-top);margin-bottom:var(--h1-margin-bottom);font-size:var(--h1-font-size)}h2{margin-top:var(--h2-margin-top);margin-bottom:var(--h2-margin-bottom);font-size:var(--h2-font-size)}h3,h4,h5,h6{font-size:var(--hx-font-size);margin-top:var(--hx-margin-top);margin-bottom:var(--hx-margin-bottom)}p{margin-top:var(--p-margin-top);margin-bottom:var(--p-margin-bottom);font-size:var(--p-font-size);line-height:var(--p-line-height)}ul{margin-top:var(--ul-margin-top);margin-bottom:var(--ul-margin-bottom)}li{margin-left:var(--li-indent)}a{text-decoration:underline}pre{padding:var(--code-padding);border:1px solid var(--code-border);overflow:scroll;border-radius:var(--code-border-radius);margin-top:var(--code-margin-top);margin-bottom:var(--code-margin-bottom);background-color:var(--code-background)!important;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;line-height:1.3em}pre::-webkit-scrollbar{display:none}code span{display:inline!important}code{-webkit-font-smoothing:antialiased;-moz-font-feature-settings:"liga=1, dlig=1";-ms-font-feature-settings:"liga","dlig";-webkit-font-feature-settings:"liga","dlig";-o-font-feature-settings:"liga","dlig";font-feature-settings:"liga","dlig";font-variant-ligatures:contextual;font-family:monaspace;font-size:.9em;line-height:0}.katex-display{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none}.katex-display::-webkit-scrollbar{display:none}.footnotes{margin-top:3rem;border-style:none}hr{border:none;height:1px;background:var(--content-secondary);margin-top:2rem;margin-bottom:2rem}.header{padding-top:var(--header-top-gap);margin-bottom:var(--header-bottom-gap)}.header p{font-family:monospace;margin-top:var(--header-menu-top-gap);margin-right:var(--header-menu-side-gap)}.header-title{font-size:2.6em;font-weight:700;margin-bottom:0;margin-top:0}footer{font-size:small;display:flex;justify-content:center;align-items:center;max-height:var(--footer-height)}footer a{font-family:monaspace;margin-left:.2rem;margin-right:.2rem}.post-line{margin-bottom:.5rem;display:flex;align-items:baseline}.tag-line{margin-bottom:.5rem;display:flex;align-items:baseline}.post-line p{margin-top:0;margin-bottom:0}.line-date{font-size:small;font-family:monaspace;min-width:120px;max-width:120px;text-align:right;padding-right:1rem;margin-top:0;margin-bottom:0}.line-title{margin:0}.tag-title{margin:0}.line-summary{font-size:small;margin-top:.2rem!important;color:var(--content-secondary)}.list-container{padding-bottom:3rem}.pagination{display:flex;align-items:center;margin-top:1rem;margin-bottom:0;justify-content:center}.pagination-control{min-width:3rem;margin-left:.5rem;margin-right:.5rem;text-align:center;align-items:center}.page-number{min-width:3rem;margin-left:.5rem;margin-right:.5rem;display:flex;align-items:center;justify-content:center;align-items:center;font-weight:700}.social-icons{padding:12px 0;margin-bottom:var(--social-icons-bottom-margin)}.social-icons a{text-decoration:none}.social-icons a:not(:last-of-type){margin-inline-end:12px}.social-icons a svg{height:20px;width:20px}.single-intro-container{margin-top:1rem;margin-bottom:2rem}.single-title{margin-bottom:.5rem}.single-readtime{margin-top:.5rem;color:var(--content-secondary)}.single-summary{margin-bottom:0;color:var(--content-secondary)}.single-content{margin-bottom:5rem}.single-tags{margin-top:-1rem}.single-tags span{margin-right:.3rem}.single-pagination{margin-top:3rem;margin-bottom:3rem}.single-pagination a{margin-left:.4rem;margin-right:.4rem}.single-pagination hr{margin:0}.single-pagination-text{display:flex;justify-content:center;align-items:center;min-height:100%}.single-pagination-prev{min-width:50%;margin-top:1rem;margin-bottom:1rem;text-align:right}.single-pagination-next{min-width:50%;margin-top:1rem;margin-bottom:1rem;text-align:left}.single-pagination-container-next{display:flex;min-height:100%;padding:.5rem}.single-pagination-container-prev{display:flex;min-height:100%;padding:.5rem;float:right}.toc{font-size:var(--p-font-size);line-height:calc(.9 * var(--p-line-height));margin-top:var(--toc-margin-top);margin-bottom:var(--toc-margin-bottom)}.toc ul{margin-top:.1rem;margin-bottom:.1rem}.toc li{margin-top:.1rem;margin-bottom:.1rem}.autonumber{counter-reset:h2-counter 0}.autonumber h2{counter-increment:h2-counter 1;counter-reset:h3-counter 0}.autonumber h3{counter-increment:h3-counter 1;counter-reset:h4-counter 0}.autonumber h4{counter-increment:h4-counter 1}.autonumber h2:before{content:counter(h2-counter)"\00a0\00a0"}.autonumber h3:before{content:counter(h2-counter)"." counter(h3-counter)"\00a0\00a0"}.autonumber h4:before{content:counter(h2-counter)"." counter(h3-counter)"." counter(h4-counter)"\00a0\00a0"}.dark .img-light{display:none!important}.light .img-dark{display:none!important}.img-small div{display:flex;align-items:center;justify-content:center}.img-small img{scale:80%}.img-full div{display:flex;align-items:center;justify-content:center}.img-full img{width:100vw!important;max-width:100vw!important}.caption-container{display:flex;justify-content:center}figcaption{color:var(--content-secondary);padding-left:var(--caption-padding);padding-right:var(--caption-padding);font-size:var(--caption-font-size);margin-top:1rem;margin-bottom:1rem}.not-found{display:flex;align-items:center;justify-content:center}.not-found div{text-align:center}.not-found div h1{font-size:6rem;margin-bottom:3rem}.breadcrumbs{font-size:.8em;margin-bottom:calc(-.5 * var(--h1-margin-top))}.giscus{margin-top:3rem}.back-to-top{text-align:center;font-family:monaspace;font-size:small;margin-bottom:2rem}p code{background-color:var(--code-background);border-radius:3px;padding:2px}table{border-collapse:collapse;margin-top:var(--table-margin-top);margin-bottom:var(--table-margin-bottom);font-size:var(--p-font-size);line-height:var(--p-line-height);color:var(--content-primary)}th,td{padding:var(--table-cell-padding);border:1px solid var(--code-border);text-align:left}th{background-color:var(--code-background);font-weight:700}table code{background-color:var(--code-background);border-radius:3px;padding:2px}blockquote{margin:1.5rem;margin-left:0;margin-right:0;border-left:solid 2px;color:var(--content-secondary)}blockquote p{margin-left:1rem;margin-right:1rem}:root{--main-width:1024px}.header-title{position:relative;padding-left:56px}.header-title::before{content:"";position:absolute;border-radius:.25em;background-image:url(/images/2024.jpg);background-position:50%;background-size:contain;background-repeat:no-repeat;background-color:#000;height:48px;width:48px;top:calc(50% - 24px);left:0}.intro a,.small>a{color:#15803d}.line-title>a,.single-content a,.single-pagination-text>a,.pagination-control>a{color:#15803d}.line-title>a{font-weight:700}p>code,li>code{white-space:nowrap;border-radius:.375rem;background-color:#e5e7eb;padding:.4rem;font-size:.875rem;line-height:1.25rem}:root{--content-primary:rgb(36, 36, 36);--content-secondary:rgb(117, 117, 117);--background:rgb(255, 255, 255);--code-background:rgb(249, 249, 249);--code-border:rgb(229, 229, 229)}.dark{--content-primary:rgb(218, 218, 218);--content-secondary:rgb(140, 140, 140);--background:rgb(20, 20, 20);--code-background:rgb(30, 30, 30);--code-border:rgb(50, 50, 50)}:root{--content-primary:rgb(36, 36, 36);--content-secondary:rgb(117, 117, 117);--background:rgb(255, 255, 255);--code-background:rgb(249, 249, 249);--code-border:rgb(229, 229, 229)}.dark{--content-primary:rgb(218, 218, 218);--content-secondary:rgb(140, 140, 140);--background:rgb(20, 20, 20);--code-background:rgb(30, 30, 30);--code-border:rgb(50, 50, 50)}
\ No newline at end of file
diff --git a/images/headshot.jpg b/images/2024.jpg
similarity index 100%
rename from images/headshot.jpg
rename to images/2024.jpg
diff --git a/index.html b/index.html
index 80484c3..22c6983 100644
--- a/index.html
+++ b/index.html
@@ -26,7 +26,7 @@
-
+
diff --git a/page/2/index.html b/page/2/index.html
index 5c7aab5..9194bcf 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -26,7 +26,7 @@
-
+
diff --git a/page/3/index.html b/page/3/index.html
index 0c6b900..33f1b20 100644
--- a/page/3/index.html
+++ b/page/3/index.html
@@ -26,7 +26,7 @@
-
+
diff --git a/posts/2012-06-27-flushing-content-blocks-with-rails-4/index.html b/posts/2012-06-27-flushing-content-blocks-with-rails-4/index.html
index 5ea48bb..bd10f7d 100644
--- a/posts/2012-06-27-flushing-content-blocks-with-rails-4/index.html
+++ b/posts/2012-06-27-flushing-content-blocks-with-rails-4/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2013-02-25-extending-customizing-3rd-party-code/index.html b/posts/2013-02-25-extending-customizing-3rd-party-code/index.html
index f69e07e..3567da5 100644
--- a/posts/2013-02-25-extending-customizing-3rd-party-code/index.html
+++ b/posts/2013-02-25-extending-customizing-3rd-party-code/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2014-04-08-3-features-from-rails-4-1-that-im-excited-about/index.html b/posts/2014-04-08-3-features-from-rails-4-1-that-im-excited-about/index.html
index 3a393f7..ddaff4f 100644
--- a/posts/2014-04-08-3-features-from-rails-4-1-that-im-excited-about/index.html
+++ b/posts/2014-04-08-3-features-from-rails-4-1-that-im-excited-about/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2014-08-13-css-at-plataformatec/index.html b/posts/2014-08-13-css-at-plataformatec/index.html
index ce29b00..f6f386a 100644
--- a/posts/2014-08-13-css-at-plataformatec/index.html
+++ b/posts/2014-08-13-css-at-plataformatec/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2015-05-11-nobody-told-me-minitest-was-this-fun/index.html b/posts/2015-05-11-nobody-told-me-minitest-was-this-fun/index.html
index 5dbe854..18ba588 100644
--- a/posts/2015-05-11-nobody-told-me-minitest-was-this-fun/index.html
+++ b/posts/2015-05-11-nobody-told-me-minitest-was-this-fun/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2015-09-22-custom-elements/index.html b/posts/2015-09-22-custom-elements/index.html
index c313b6a..c7be433 100644
--- a/posts/2015-09-22-custom-elements/index.html
+++ b/posts/2015-09-22-custom-elements/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2015-10-01-revising-talks/index.html b/posts/2015-10-01-revising-talks/index.html
index ff6330a..a1d33d4 100644
--- a/posts/2015-10-01-revising-talks/index.html
+++ b/posts/2015-10-01-revising-talks/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2015-11-24-multiverse/index.html b/posts/2015-11-24-multiverse/index.html
index f7e1569..f4d8a5c 100644
--- a/posts/2015-11-24-multiverse/index.html
+++ b/posts/2015-11-24-multiverse/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2015-12-31-books-from-2015/index.html b/posts/2015-12-31-books-from-2015/index.html
index e9947dc..746b926 100644
--- a/posts/2015-12-31-books-from-2015/index.html
+++ b/posts/2015-12-31-books-from-2015/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2016-02-29-experimenting-with-explicit-contracts-with-ruby/index.html b/posts/2016-02-29-experimenting-with-explicit-contracts-with-ruby/index.html
index 24de972..4d8c221 100644
--- a/posts/2016-02-29-experimenting-with-explicit-contracts-with-ruby/index.html
+++ b/posts/2016-02-29-experimenting-with-explicit-contracts-with-ruby/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/2018-02-20-git-field-guide/index.html b/posts/2018-02-20-git-field-guide/index.html
index 6220ff9..e4a994e 100644
--- a/posts/2018-02-20-git-field-guide/index.html
+++ b/posts/2018-02-20-git-field-guide/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/index.html b/posts/index.html
index f05df48..114ce5d 100644
--- a/posts/index.html
+++ b/posts/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/page/2/index.html b/posts/page/2/index.html
index e36c79b..c82a60c 100644
--- a/posts/page/2/index.html
+++ b/posts/page/2/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/posts/page/3/index.html b/posts/page/3/index.html
index ee8bbdd..160dbce 100644
--- a/posts/page/3/index.html
+++ b/posts/page/3/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/tags/index.html b/tags/index.html
index 8e1b051..2005f56 100644
--- a/tags/index.html
+++ b/tags/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/talks/circuit-breakers/index.html b/talks/circuit-breakers/index.html
index 628bfb3..04e7905 100644
--- a/talks/circuit-breakers/index.html
+++ b/talks/circuit-breakers/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/talks/ecto-sem-sql/index.html b/talks/ecto-sem-sql/index.html
index cc40d33..2186364 100644
--- a/talks/ecto-sem-sql/index.html
+++ b/talks/ecto-sem-sql/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/talks/feature-toggles/index.html b/talks/feature-toggles/index.html
index 057e301..720dfac 100644
--- a/talks/feature-toggles/index.html
+++ b/talks/feature-toggles/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/talks/index.html b/talks/index.html
index 22962b4..b81a129 100644
--- a/talks/index.html
+++ b/talks/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/talks/minitest/index.html b/talks/minitest/index.html
index 677f81e..6988c52 100644
--- a/talks/minitest/index.html
+++ b/talks/minitest/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/talks/page/2/index.html b/talks/page/2/index.html
index 4bec6b9..6d3d71a 100644
--- a/talks/page/2/index.html
+++ b/talks/page/2/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/talks/testes/index.html b/talks/testes/index.html
index 034b8b6..8c990cb 100644
--- a/talks/testes/index.html
+++ b/talks/testes/index.html
@@ -25,7 +25,7 @@
-
+
diff --git a/talks/zen-and-art-of-refactoring/index.html b/talks/zen-and-art-of-refactoring/index.html
index 64c188f..04b21f5 100644
--- a/talks/zen-and-art-of-refactoring/index.html
+++ b/talks/zen-and-art-of-refactoring/index.html
@@ -25,7 +25,7 @@
-
+