proven.lol

https://sia.codes/

HASH d18e1656a501b50578bbc44fdb86d606

This item was proven by @sia on 2023-05-19T20:04:25+00:00. (View all of @sia’s proofs.)

Evidence

This is a copy of the web page retrieved on 2023-05-19T20:04:25+00:00. Show the proof snippet.

<!DOCTYPE html> <html lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Sia Karamalegos, Web Performance</title> <meta name="description" content="Performance engineer and web developer, speaker, teacher, community organizer, and Google Developers Expert in Web Technologies based in Durham, North Carolina"> <style> :root{--font-code:Consolas,Menlo,Monaco,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L","Courier New",Courier,monospace;--red:hsl(0, 55%, 34%);--green:hsl(126, 39%, 24%);--black:rgb(34,31,44);--grey-20:rgb(192,190,202);--grey-30:rgb(163,160,178);--white:rgb(252,252,253);--color-attr:#fdb31f;--color-attr-light:#f4bf75;--color-tag:hsl(222, 100%, 85%);--color-string:hsl(222, 100%, 85%);--color-attr-val:#54e88f;--color-important:rgb(245,0,159);--color-selector:rgb(203,131,255);--color-comment:var(--grey-30)}code,pre{direction:ltr;font-family:var(--font-code);font-size:var(--size-300);padding:.5rem;line-height:1.5;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;background:var(--black);color:var(--white)}pre{margin:2.5rem 0;overflow:auto}:not(pre)>code{font-size:var(--size-400);padding:.1rem;background-color:rgba(222,221,227,.7);border-radius:.3rem;color:var(--black)}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:var(--color-comment)}.token.punctuation{color:var(--grey-20)}.token.namespace{opacity:.7}.token.boolean,.token.number,.token.operator{color:var(--color-attr)}.token.property{color:var(--color-attr-light)}.token.tag{color:var(--color-tag)}.token.string{color:var(--color-string)}.token.selector{color:var(--color-selector)}.token.attr-name{color:var(--color-attr)}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:var(--color-string)}.token.attr-value,.token.control,.token.directive,.token.keyword,.token.unit{color:var(--color-attr-val)}.token.atrule,.token.regex,.token.statement{color:var(--color-string)}.token.placeholder,.token.variable{color:var(--color-tag)}.token.deleted{text-decoration:line-through}.token.inserted{border-bottom:1px dotted var(--white);text-decoration:none}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:var(--color-important)}.token.entity{cursor:help}pre>code.highlight{outline:.4rem solid var(--color-important);outline-offset:.4rem}.highlight-line{display:block;padding:.125rem 1rem;text-decoration:none;color:inherit}.highlight-line:empty:before{content:" "}.highlight-line+br{display:none}.highlight-line-isdir{color:var(--grey-30);background-color:var(--grey-80)}.highlight-line-active{background-color:var(--grey-60);background-color:var(--grey-70)}.highlight-line-add{background-color:var(--green)}.highlight-line-remove{background-color:var(--red)}.highlight-line-add .token.attr-name,.highlight-line-remove .token.attr-name{color:var(--color-attr-light)}.highlight-line-add .token.attr-value{color:var(--color-attr-val)}.highlight-line-add .token.tag{color:var(--color-tag)} :root{--font-body:'Lexend','Lexend-fallback',sans-serif;--font-display:'Lexend','Lexend-fallback',sans-serif;--font-serif:Georgia,'Times New Roman',Times,serif;--grey-0:rgb(252,252,253);--grey-05:#edecf0;--white:rgb(252,252,253);--grey-10:rgb(222,221,227);--grey-20:rgb(192,190,202);--df:#aaa;--grey-30:rgb(163,160,178);--grey-40:rgb(134,132,154);--grey-50:hsla(245, 10%, 48%, 1);--grey-default:rgb(117,115,140);--grey-60:hsla(247, 14%, 34%, 1);--grey-70:rgb(57,54,72);--grey-80:rgb(34,31,44);--pink-0:rgb(255,251,253);--pink-10:rgb(255,209,228);--pink-20:rgb(255,164,205);--pink-30:rgb(255,111,184);--pink-40:rgb(245,0,159);--pink-default:rgb(245,0,159);--pink-50:rgb(205,0,132);--pink-60:rgb(158,0,101);--pink-70:rgb(113,0,71);--pink-80:rgb(71,0,43);--purple-0:rgb(253,251,255);--purple-05:hsl(270, 100%, 97%, 1);--purple-10:rgb(234,213,255);--purple-20:rgb(217,174,255);--purple-30:rgb(203,131,255);--purple-40:rgb(190,79,255);--purple-50:rgb(176,0,245);--purple-default:rgb(176,0,245);--purple-60:rgb(130,0,183);--purple-70:rgb(93,0,131);--purple-80:rgb(58,0,84);--blue-0:rgb(252,252,255);--blue-10:rgb(219,218,255);--blue-20:rgb(186,185,255);--blue-30:rgb(153,151,255);--blue-40:rgb(119,117,255);--blue-50:rgb(83,79,255);--blue-60:rgb(24,0,245);--blue-default:rgb(24,0,245);--blue-70:rgb(16,0,193);--blue-80:rgb(7,0,125);--gradient:linear-gradient( 4deg, var(--pink-default) 0%, var(--purple-default) 40%, var(--blue-50) 100% );--gradient-3:linear-gradient( 135deg, var(--pink-50) 30%, var(--purple-60) 100% );--size-200:0.694rem;--size-300:0.833rem;--size-400:1rem;--size-500:1.2rem;--size-600:1.44rem;--size-700:1.728rem;--size-800:2.074rem;--size-900:2.488rem;--size-1000:2.986rem}@font-face{font-family:Lexend;font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/lexend-v5-latin-regular.woff2') format('woff2'),url('/fonts/lexend-v5-latin-regular.woff') format('woff')}@font-face{font-family:Lexend;font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/lexend-v5-latin-600.woff2') format('woff2'),url('/fonts/lexend-v5-latin-600.woff') format('woff')}@font-face{font-family:Lexend-fallback;font-style:normal;font-weight:400;size-adjust:105%;ascent-override:88%;src:local("Arial")}@font-face{font-family:Lexend-fallback;font-style:normal;font-weight:600;size-adjust:110%;ascent-override:88%;src:local("Arial")}*,::after,::before{box-sizing:border-box}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin:0}ol[role=list],ul[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}button,input,select,textarea{font:inherit}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,::after,::before{animation-duration:NaNs!important;animation-iteration-count:1!important;transition-duration:NaNs!important;scroll-behavior:auto!important}}body,html{background-color:var(--white);color:var(--grey-80);display:grid;font-family:var(--font-body);font-size:100%;grid-template-rows:auto 1fr auto;line-height:1.5;margin:0;min-height:100%;padding:0}:focus{outline:2px dashed var(--pink-50);outline-offset:.25rem}.social{text-align:right}.social a{color:var(--pink-50);display:inline-block;margin:6px}.social a:hover{color:var(--pink-40)}h1,h2,h3,h4,h5,h6{color:var(--purple-70);font-family:var(--font-display);font-weight:600;line-height:1.3}h1{font-size:clamp(var(--size-900), 5vw, 4rem)}h2,h2 code{font-size:var(--size-800)}h3,h3 code{font-size:var(--size-700)}h4{font-size:var(--size-600)}h5{font-size:var(--size-500)}small{font-size:var(--size-300)}.flow>*+*{margin-top:var(--flow-space,1em)}aside,blockquote{--flow-space:var(--size-700)}lite-youtube{--flow-space:var(--size-700)}.card-list{--flow-space:var(--size-700)}.tmpl-post :is(h2,h3){--flow-space:var(--size-900)}.tmpl-post :is(h2,h3)+*{--flow-space:var(--size-400)}.tmpl-post figure,.tmpl-post figure+*{--flow-space:var(--size-900)}aside{background-color:var(--purple-05);border-left:4px solid var(--purple-50);margin-bottom:var(--size-700);padding:24px 30px}section{padding:16px 0}@media (min-width:58rem){.wider{width:100vw;max-width:58rem;margin-left:50%;transform:translateX(-50%)}}.title{color:var(--purple-50)}.subtitle p{font-style:italic;max-width:37.5em}.tmpl-post li,.tmpl-post li code,aside,p,p code{line-height:1.7}ol,ul{padding-left:2.5em}li{margin-top:.5em;margin-bottom:.5em;padding-left:.6em}li::marker{color:var(--pink-50);font-size:var(--size-400);font-weight:700}ul li::marker{content:'■ '}p.lead{color:var(--grey-50);font-size:var(--size-500)}.text-right{text-align:right}.text-center{text-align:center}blockquote{display:flex;flex-direction:column;padding:24px 30px;margin:var(--size-700) 0;font-style:italic;position:relative;z-index:1}blockquote p:first-child::before{content:"\201C";color:var(--purple-10);font-size:150px;position:absolute;left:-82px;top:-74px;z-index:-1}blockquote p{position:relative;margin-bottom:.5em;margin-left:32px;z-index:1}blockquote p.blockquote-source{font-family:var(--font-body);font-size:var(--size-300);font-style:normal;text-align:right}a{color:var(--pink-60);border-bottom:1px solid var(--pink-10);box-shadow:var(--pink-10) 0 -2px 0 0 inset;text-decoration:none}a:hover{background-color:var(--pink-10);text-decoration:none}.a-reset a{border:none;box-shadow:none}.a-reset a:hover{background:0 0}a.button,button.button,input.button{background:var(--gradient-3);border:none;color:var(--white);cursor:pointer;font-weight:400;letter-spacing:1px;text-decoration:none;text-transform:uppercase}a.button-default,button.button-default{display:inline-block;font-size:var(--size-500);padding:16px 32px}input.button-small{padding:4px 8px}a.button:hover,button.button:hover,input.button:hover{opacity:.8}a.button-circle{align-items:center;border-radius:50%;display:flex;font-size:var(--size-400);height:15vw;min-height:100px;justify-content:center;letter-spacing:.5px;position:relative;left:0;width:15vw;min-width:100px}a.logo-link{border:none;box-shadow:none;cursor:pointer;margin:8px}a.logo-link:hover{background-color:inherit}img{height:auto;max-width:100%}.form,.postlist-item:focus-within,.postlist-item:hover,.tmpl-post img,.twitter-tweet iframe,a.button,button.button,iframe,input.button,pre{box-shadow:0 3px 6px rgba(0,0,0,.15),0 2px 4px rgba(0,0,0,.12)}.twitter-tweet{margin:40px auto}.twitter-tweet iframe{margin:32px auto;border-radius:15px}.tmpl-post figure{margin:2.5em 0;text-align:center}.tmpl-post img{margin:auto}.tmpl-post figcaption{color:var(--grey-60);font-size:var(--size-300);margin-top:1em;text-align:center}.tmpl-post .e-content>img:not(.u-photo),.tmpl-post .e-content>p img:not(.u-photo),.tmpl-post figure,pre{width:100vw;max-width:58rem;margin-left:50%;transform:translateX(-50%);position:relative}.tmpl-post .portrait-image,.tmpl-post .portrait-image img{max-width:29rem;width:100%}section.bg-secondary{background-color:var(--grey-05);margin:var(--size-1000) 0 var(--size-1000) 50%;padding:var(--size-1000) 0;position:relative;transform:translateX(-50%);width:100vw}.bg-secondary details p{background-color:var(--grey-10)}.circles{--colors:#ff6fb8,#cb83ff,#9997ff;--min-radius:8;--max-radius:16;--num-circles:30;--min-opacity:10;--max-opacity:30;background-image:paint(circles)}.tmpl-post .byline{color:var(--grey-60);font-size:var(--size-300);font-variation-settings:'ital' 1,'slnt' -8;margin:8px 0}.tmpl-post .p-name{margin-bottom:8px}.tmpl-post .p-summary.lead{margin:12px 0}.tmpl-post .u-photo{border-radius:50%;display:inline;margin-left:4px;position:relative;top:6px}main{max-width:100vw;overflow:hidden;padding:2em 1em}table{margin:2em 0}table td,table th{padding-right:1em}.tmpl-post table td{padding:1em .5em;vertical-align:top}.scroll-table{overflow-x:scroll}.content{max-width:960px;margin:0 auto;position:relative}.content-780{max-width:780px;margin:0 auto}.bg-dark{background-color:var(--grey-80);color:var(--grey-20)}.bg-dark a{color:var(--pink-30)}.bg-dark a:hover{color:var(--pink-20)}.bg-dark p.lead{color:var(--grey-20)}nav{background-color:rgba(252,252,253,.95);font-family:var(--font-display);overflow-x:scroll;position:relative;width:100%}nav::before{content:"";background:var(--gradient);height:3px;position:absolute;top:0;left:0;width:100%}nav .content{align-items:center;display:flex;justify-content:space-between}nav img{display:block}.nav{display:flex;list-style:none;margin-left:1em;overflow:auto;padding:0}.nav-item{display:inline-block;font-size:var(--size-400);margin:8px .5em;text-align:center}.nav-item-active{font-weight:600}.home{display:none;margin:auto 1rem}.postlist{display:grid;grid-gap:32px}.postlist-item{background-color:var(--grey-05);display:grid;grid-template-rows:150px auto auto 1fr auto;margin:-2px;overflow:hidden;padding:2px;position:relative;transition-duration:.15s;transition-property:background,box-shadow,margin,padding}.postlist-item:focus-within,.postlist-item:hover{background-color:var(--white);margin:-6px;padding:6px}.postlist-title{font-size:var(--size-500)}.postlist-title a:before{content:"";top:0;right:0;bottom:0;left:0;position:absolute}.postlist-item p{font-size:var(--size-400);margin:10px}.postlist-item h3{margin:10px 8px}.archivelist-date,.postlist-date{font-size:var(--size-300);color:var(--grey-60)}.postlist-image{background-color:var(--purple-10);margin:-6px}.postlist-image img{height:100%;filter:grayscale(100%) contrast(.75) brightness(1.25);mix-blend-mode:multiply;object-fit:cover;width:100%}.postlist-item:hover .postlist-image img{filter:none;mix-blend-mode:normal}.post-tag{position:relative}.archivelist-item{margin-top:40px}.archivelist-title{font-size:var(--size-500);margin:12px 0 0 0}.archivelist-title svg{margin-left:4px}.archivelist-tags{margin-left:16px}.archivelist-tags a{position:relative;bottom:4px}.archivelist-description{font-size:var(--size-400);margin:0}.archivelist-publication{color:var(--grey-60);font-size:var(--size-300);margin:0}#upcoming-talks .talks{margin:0 auto;max-width:780px}#upcoming-talks svg{display:none;bottom:20px;right:20px;position:absolute}.event-item{margin-top:1.5rem}.card-list .event-item details p,.card-list .event-item summary{font-size:var(--size-400)}.card-list .event-item details{margin:8px}.event-item .event-date{color:var(--grey-60);font-size:var(--size-300);margin-right:4px}.event-item h3{font-size:var(--size-500);margin:0}.event-item details{grid-column:span 2;margin-top:0;padding:0}.event-location{color:var(--grey-60);font-size:var(--size-300);margin:8px 0 12px 0}.event-location img{box-shadow:none;display:inline;margin:0 8px 0 0;width:var(--size-300)}summary::marker{color:var(--pink-20)}details p{background-color:var(--grey-05);padding:16px 24px}.event-location,.post-tag,summary{font-family:var(--font-display)}.post-tag{background-color:var(--grey-60);border-radius:8px;color:var(--white);display:inline-block;font-size:var(--size-200);font-weight:600;letter-spacing:.5px;margin:.5em .8em .25em 0;padding:4px 8px;text-decoration:none;text-transform:uppercase;vertical-align:text-top}a.post-tag{color:var(--white)}a.post-tag:hover{background-color:var(--grey-30)}.warning{background-color:#ffc;padding:1em .625em}.warning ol:only-child{margin:0}.direct-link{font-family:sans-serif;text-decoration:none;font-style:normal;margin-left:.1em}a.direct-link{color:transparent}:hover>a.direct-link,a.direct-link:focus{color:var(--grey-30)}footer{padding:16px 16px 0;position:relative;text-align:center;width:100%}footer::before{content:"";background:var(--gradient);height:3px;position:absolute;top:-3px;left:0;width:100%}footer .footer-social-links a{display:inline-block;margin:6px}footer .footer-copy{font-size:1rem;margin-bottom:.5rem}.headshot{border-radius:100%;width:300px}.social a svg{width:24px}footer a svg{width:24px}lite-youtube{background-color:#000;position:relative;display:block;contain:content;background-position:center center;background-size:cover;cursor:pointer;margin:var(--size-700) 0;max-width:720px}lite-youtube::before{content:'';display:block;position:absolute;top:0;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);background-position:top;background-repeat:repeat-x;height:60px;padding-bottom:50px;width:100%;transition:all .2s cubic-bezier(0, 0, .2, 1)}lite-youtube::after{content:"";display:block;padding-bottom:calc(100% / (16 / 9))}lite-youtube>iframe{width:100%;height:100%;position:absolute;top:0;left:0;border:0}lite-youtube>.lty-playbtn{width:68px;height:48px;position:absolute;cursor:pointer;transform:translate3d(-50%,-50%,0);top:50%;left:50%;z-index:1;background-color:transparent;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 68 48"><path fill="%23f00" fill-opacity="0.8" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z"></path><path d="M 45,24 27,14 27,34" fill="%23fff"></path></svg>');filter:grayscale(100%);transition:filter .1s cubic-bezier(0, 0, .2, 1);border:none}lite-youtube .lty-playbtn:focus,lite-youtube:hover>.lty-playbtn{filter:none}lite-youtube.lyt-activated{cursor:unset}lite-youtube.lyt-activated::before,lite-youtube.lyt-activated>.lty-playbtn{opacity:0;pointer-events:none}.lyt-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.webmentions img{border-radius:50%;display:inline;height:48px;width:48px;object-fit:cover}.webmentions h3{margin-top:40px}.webmentions__facepile span{font-size:var(--size-600);margin-right:2rem}.webmention-replies img{height:24px;width:24px}.webmention-replies article{margin-bottom:32px}.webmention-replies .webmention__meta{margin-bottom:8px}.webmention-replies .webmention__meta time{display:block;margin-top:8px}.webmention-text{font-size:var(--size-400);margin-top:0}.webmention-text a{font-size:var(--size-300);margin-left:4px}article.webmention{background-color:var(--grey-05);padding:16px 16px 12px}form input[type=url]{display:block;height:2rem;width:100%}.form-webmention{display:grid;grid-template-columns:auto;gap:8px;margin:16px 0;width:100%}.form-webmention input{width:100%}.form-webmention .button{font-size:var(--size-300);height:2rem}form label{font-weight:600;margin:4px 0 0 0}.form{background-color:var(--grey-05);margin:40px auto;padding:16px;position:relative}.form>*{position:relative}.form svg{position:absolute;top:5px;right:10px}.form button,.form label,.form p{display:block;margin:24px auto;width:90%}.form input{height:2rem}.form input,.form textarea{border:1px solid var(--grey-20);color:var(--grey-80);display:block;font-family:var(--font-body);font-size:var(--size-400);font-weight:400;margin:4px 0;padding:4px;width:100%}footer .form{background:0 0;box-shadow:none;text-align:left}footer .button{font-size:var(--size-400);padding:8px 12px}footer .form button,footer .form input{height:2.3rem}#honey{display:none}.well{background-color:rgba(222,221,227,.4);margin-top:40px;overflow:hidden;padding:32px;position:relative}.well>*{position:relative}.well svg{bottom:0;right:100px;position:absolute;transform:rotate(45deg)}.tmpl-newspost .circles .content-780{margin:0 auto}@media screen and (max-width:820px){.tmpl-newspost .circles .content-780{padding:0 16px;max-width:100%}}@media screen and (min-width:380px){.social a svg{width:32px}footer a svg{width:32px}}@media screen and (min-width:500px){:root{--size-200:0.64rem;--size-300:0.8rem;--size-400:1rem;--size-500:1.25rem;--size-600:1.563rem;--size-700:1.953rem;--size-800:2.441rem;--size-900:3.052rem;--size-1000:3.815rem}body,html{font-size:112.5%}.event-item{display:grid;grid-template-columns:2fr 1fr}.event-location{margin:0}.event-location img{margin:0 8px}.webmention-replies .webmention__meta{display:grid;grid-template-columns:30px 1fr 200px}.webmention-replies .webmention__meta time{display:inline;margin-top:0;text-align:right}.form{padding:32px}.form-webmention{grid-template-columns:1fr auto}.form-webmention label{grid-column:1/3}}@media screen and (min-width:520px){.home{display:inline-block}}@media screen and (min-width:665px){.form{padding:72px}.form button,.form label,.form p{width:80%}.postlist{grid-template-columns:repeat(2,1fr)}}@media screen and (min-width:780px){ol,ul{padding-left:3em}li{padding-left:.8em}}@media screen and (min-width:850px){#upcoming-talks svg{display:block}}@media screen and (min-width:1020px){.home{margin-left:-10px}.social a{margin:8px}a.button-circle{font-size:20px;height:150px;left:-20px;width:150px}section{padding:32px 0}.postlist{grid-template-columns:repeat(3,1fr)}footer{padding:32px 32px 0}footer .footer-social-links a{margin:16px}} </style> <link rel="alternate" href="/feed/feed.xml" type="application/atom+xml" title="Sia Karamalegos, Web Performance"> <link rel="webmention" href="https://webmention.io/sia.codes/webmention"> <link rel="pingback" href="https://webmention.io/sia.codes/xmlrpc"> <meta property="og:description" content="Performance engineer and web developer, speaker, teacher, community organizer, and Google Developers Expert in Web Technologies based in Durham, North Carolina"> <meta property="og:url" content="https://sia.codes/"> <meta property="og:title" content="Sia Karamalegos, Web Performance"> <meta property="og:image" content="https://res.cloudinary.com/siacodes/image/upload/w_1280,h_640,q_auto:best,c_fill,f_jpg/w_705,c_fit,co_rgb:221f2c,g_south_west,x_455,y_306,l_text:RecursiveSansExtraBold.woff2_60:Sia%20Karamalegos%252C%20Web%20Performance/w_705,c_fit,co_rgb:221f2c,g_north_west,x_455,y_356,l_text:RecursiveSansRegular.woff2_36_line_spacing_10:Performance%20engineer%20and%20web%20developer%252C%20speaker%252C%20teacher%252C%20and%20community%20organizer./v1607719366/sia.codes/twitter_tmpl.jpg"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1280"> <meta property="og:image:height" content="640"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@thegreengreek"> <meta name="twitter:creator" content="@thegreengreek"> <meta name="twitter:title" content="Sia Karamalegos, Web Performance"> <meta name="twitter:image" content="https://res.cloudinary.com/siacodes/image/upload/w_1280,h_640,q_auto:best,c_fill,f_jpg/w_705,c_fit,co_rgb:221f2c,g_south_west,x_455,y_306,l_text:RecursiveSansExtraBold.woff2_60:Sia%20Karamalegos%252C%20Web%20Performance/w_705,c_fit,co_rgb:221f2c,g_north_west,x_455,y_356,l_text:RecursiveSansRegular.woff2_36_line_spacing_10:Performance%20engineer%20and%20web%20developer%252C%20speaker%252C%20teacher%252C%20and%20community%20organizer./v1607719366/sia.codes/twitter_tmpl.jpg"> <meta name="twitter:image:alt" content="Sia Karamalegos, Web Performance"> <meta name="twitter:domain" content="sia.codes"> <link rel="apple-touch-icon" sizes="180x180" href="/img/favicons/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/img/favicons/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/img/favicons/favicon-16x16.png"> <link rel="manifest" href="/img/favicons/site.webmanifest"> <link rel="mask-icon" href="/img/favicons/safari-pinned-tab.svg" color="#5bbad5"> <link rel="shortcut icon" href="/img/favicons/favicon.ico"> <meta name="msapplication-TileColor" content="#603cba"> <meta name="msapplication-config" content="/img/favicons/browserconfig.xml"> <meta name="theme-color" content="#ffffff"> <meta name="monetization" content="$ilp.uphold.com/KaKQ36fDzzdM"> <!-- Preloading fonts for priority hints: --> <link rel="preload" href="/fonts/lexend-v5-latin-regular.woff2" as="font" type="font/woff2" crossorigin="" importance="high"> <link rel="preload" href="/fonts/lexend-v5-latin-600.woff2" as="font" type="font/woff2" crossorigin="" importance="high"> <link rel="canonical" href="https://sia.codes/"> <link rel="dns-prefetch" href="https://www.google-analytics.com"> <script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=UA-59135521-1&amp;l=dataLayer&amp;cx=c"></script><script> LUX=(function(){var a=("undefined"!==typeof(LUX)&&"undefined"!==typeof(LUX.gaMarks)?LUX.gaMarks:[]);var d=("undefined"!==typeof(LUX)&&"undefined"!==typeof(LUX.gaMeasures)?LUX.gaMeasures:[]);var j="LUX_start";var k=window.performance;var l=("undefined"!==typeof(LUX)&&LUX.ns?LUX.ns:(Date.now?Date.now():+(new Date())));if(k&&k.timing&&k.timing.navigationStart){l=k.timing.navigationStart}function f(){if(k&&k.now){return k.now()}var o=Date.now?Date.now():+(new Date());return o-l}function b(n){if(k){if(k.mark){return k.mark(n)}else{if(k.webkitMark){return k.webkitMark(n)}}}a.push({name:n,entryType:"mark",startTime:f(),duration:0});return}function m(p,t,n){if("undefined"===typeof(t)&&h(j)){t=j}if(k){if(k.measure){if(t){if(n){return k.measure(p,t,n)}else{return k.measure(p,t)}}else{return k.measure(p)}}else{if(k.webkitMeasure){return k.webkitMeasure(p,t,n)}}}var r=0,o=f();if(t){var s=h(t);if(s){r=s.startTime}else{if(k&&k.timing&&k.timing[t]){r=k.timing[t]-k.timing.navigationStart}else{return}}}if(n){var q=h(n);if(q){o=q.startTime}else{if(k&&k.timing&&k.timing[n]){o=k.timing[n]-k.timing.navigationStart}else{return}}}d.push({name:p,entryType:"measure",startTime:r,duration:(o-r)});return}function h(n){return c(n,g())}function c(p,o){for(i=o.length-1;i>=0;i--){var n=o[i];if(p===n.name){return n}}return undefined}function g(){if(k){if(k.getEntriesByType){return k.getEntriesByType("mark")}else{if(k.webkitGetEntriesByType){return k.webkitGetEntriesByType("mark")}}}return a}return{mark:b,measure:m,gaMarks:a,gaMeasures:d}})();LUX.ns=(Date.now?Date.now():+(new Date()));LUX.ac=[];LUX.cmd=function(a){LUX.ac.push(a)};LUX.init=function(){LUX.cmd(["init"])};LUX.send=function(){LUX.cmd(["send"])};LUX.addData=function(a,b){LUX.cmd(["addData",a,b])};LUX_ae=[];window.addEventListener("error",function(a){LUX_ae.push(a)});LUX_al=[];if("function"===typeof(PerformanceObserver)&&"function"===typeof(PerformanceLongTaskTiming)){var LongTaskObserver=new PerformanceObserver(function(c){var b=c.getEntries();for(var a=0;a<b.length;a++){var d=b[a];LUX_al.push(d)}});try{LongTaskObserver.observe({type:["longtask"]})}catch(e){}}; </script> <script src="https://cdn.speedcurve.com/js/lux.js?id=4224011503" async="" defer="" crossorigin="anonymous"></script> <link rel="me" href="https://front-end.social/@sia"> </head> <body> <nav> <div class="content"> <a class="logo-link" href="/"> <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" aria-labelledby="logoTitle"><title id="logoTitle">Home</title><defs> <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%" gradientTransform="rotate(45)"> <stop offset="30%" style="stop-color:rgba(205,0,132,1);stop-opacity:1"></stop> <stop offset="100%" style="stop-color:rgba(176,0,245,1);stop-opacity:1"></stop> </linearGradient> </defs><path fill="url(#grad1)" d="M72.07,55.55c-.41,0-.8,0-1.17,0a8.54,8.54,0,0,0-1.12.13,4.49,4.49,0,0,0-.15.71,4.62,4.62,0,0,0,0,.76v.11a1.4,1.4,0,0,0,.3,1,1.88,1.88,0,0,0,1.22.28,13.11,13.11,0,0,0,2-.13,6.55,6.55,0,0,0,1.7-.48l.13-.06V55.77c-.31-.05-.63-.09-.94-.12A18.13,18.13,0,0,0,72.07,55.55Z"></path><path fill="url(#grad1)" d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM41.89,27.2,43.4,27,45,26.82c.51-.05,1-.09,1.52-.1l1.43,0a15.18,15.18,0,0,1,5.52.87,3.14,3.14,0,0,1,2.21,3.15v4c-.47.14-1,.26-1.5.38s-1,.22-1.55.31-1,.14-1.53.18-1,.05-1.42.05a15.29,15.29,0,0,1-5.5-.87,3.15,3.15,0,0,1-2.24-3.15ZM37.75,63.61a7.64,7.64,0,0,1-4,3.23A23,23,0,0,1,25.41,68a38.89,38.89,0,0,1-4.71-.23,18.57,18.57,0,0,1-3.1-.58,8.21,8.21,0,0,1-1.91-.79,5.77,5.77,0,0,1-1.17-.89,5.28,5.28,0,0,1-1.2-2.19A12.54,12.54,0,0,1,12.94,60a17,17,0,0,1,.13-2.26,11.07,11.07,0,0,1,.43-2h.3c.85.37,1.66.69,2.42.94a21.32,21.32,0,0,0,2.34.64,23.06,23.06,0,0,0,2.73.38c1,.08,2.2.13,3.56.13.74,0,1.42,0,2,0s1.16,0,1.63-.08a2.05,2.05,0,0,0,.1-1.09A1.22,1.22,0,0,0,28,55.9a5.6,5.6,0,0,0-1.78-.46l-3.71-.56a17.18,17.18,0,0,1-5.07-1.45,5.54,5.54,0,0,1-2.64-2.57A9.23,9.23,0,0,1,14,46.79,7.8,7.8,0,0,1,14.85,43a7.43,7.43,0,0,1,2.67-2.77,13.38,13.38,0,0,1,4.4-1.68A29.32,29.32,0,0,1,28,38a29.74,29.74,0,0,1,4.07.23,9.29,9.29,0,0,1,2.52.66,5.14,5.14,0,0,1,1.5,1,4.83,4.83,0,0,1,1.15,1.61,7.89,7.89,0,0,1,.53,2.13,26.75,26.75,0,0,1,.16,3.13c0,.48,0,1-.08,1.53s-.13,1.09-.23,1.63h-.31A12,12,0,0,0,35.08,49a22,22,0,0,0-3.21-.68,30.54,30.54,0,0,0-4.48-.28,9.36,9.36,0,0,0-2,.15,1.56,1.56,0,0,0-.84.41,1,1,0,0,0-.2.61.74.74,0,0,0,.23.5,1.8,1.8,0,0,0,.84.44,12.18,12.18,0,0,0,1.73.33l4,.51a11.34,11.34,0,0,1,4.48,1.37,6.19,6.19,0,0,1,2.46,2.67A9.07,9.07,0,0,1,38.89,59,9.34,9.34,0,0,1,37.75,63.61Zm16,3.77a26.43,26.43,0,0,1-2.73.13c-2.47,0-4.25-.55-5.34-1.63A6.64,6.64,0,0,1,44,61V50h-.3l-.1.18a.31.31,0,0,1-.13.1l-.15.05a.55.55,0,0,1-.18,0c-.55,0-1.06-.64-1.53-1.93a14.74,14.74,0,0,1-.71-5,18.81,18.81,0,0,1,.15-2.64,18.46,18.46,0,0,1,.41-2l.66-.1.74-.08.74-.05.68,0h.54a32.36,32.36,0,0,1,6.79.53,5.48,5.48,0,0,1,3,1.45,3.11,3.11,0,0,1,.74,2V58.09c0,1.15,0,2.27,0,3.33a25.19,25.19,0,0,0,.26,3A16.55,16.55,0,0,0,56.25,67C55.33,67.17,54.49,67.29,53.73,67.38Zm32.49-1.45a4.6,4.6,0,0,1-1.86,1.22,6.87,6.87,0,0,1-2.26.36,5.77,5.77,0,0,1-2.47-.59,8.38,8.38,0,0,1-2.32-1.65,8.76,8.76,0,0,1-1.73-2.52l-.12-.28h-.34A8.21,8.21,0,0,1,73.52,65a7.29,7.29,0,0,1-2.62,1.8,9.72,9.72,0,0,1-3.76.67,9.14,9.14,0,0,1-4.53-1.05,7,7,0,0,1-2.88-2.9,9,9,0,0,1-1-4.3V58.8a7.14,7.14,0,0,1,.76-3.18,10.42,10.42,0,0,1,2-2.8,10.13,10.13,0,0,1,2.85-2,7.6,7.6,0,0,1,3.25-.74,23.39,23.39,0,0,1,3.87.28,16.78,16.78,0,0,1,3,.76l.47.2c0-.27.07-.54.11-.81a8,8,0,0,1,.28-1.12,7,7,0,0,1,.39-.94A12.69,12.69,0,0,0,73.9,48c-.64-.12-1.3-.21-2-.28a20.9,20.9,0,0,0-2.14-.1,25.41,25.41,0,0,0-3,.18,27.07,27.07,0,0,0-3,.5c-1,.23-2,.51-3,.84h-.3a12.94,12.94,0,0,1-.28-1.75c0-.56-.08-1.18-.08-1.86a12.75,12.75,0,0,1,.26-2.7,3.85,3.85,0,0,1,1.07-2,7.15,7.15,0,0,1,2.06-1.43,10.73,10.73,0,0,1,3.3-.78,53.93,53.93,0,0,1,5.73-.23,14.57,14.57,0,0,1,9.31,3.3,12.28,12.28,0,0,1,2.9,3.46,8.13,8.13,0,0,1,1.07,4v8.25H86a1.68,1.68,0,0,0,.78-.2,4.78,4.78,0,0,0,.64-.41h.31a5,5,0,0,1,.17,1,15.85,15.85,0,0,1,.08,1.6,14.25,14.25,0,0,1-.51,4.05A5.84,5.84,0,0,1,86.22,65.93Z"></path></svg> </a> <ul class="nav"><li class="nav-item nav-item-active"><a href="/">Home</a></li><li class="nav-item"><a href="/about/">About</a></li><li class="nav-item"><a href="/contact/">Contact</a></li><li class="nav-item"><a href="/speaking/">Speaking</a></li><li class="nav-item"><a href="/newsletter/">Newsletter</a></li><li class="nav-item"><a href="/posts/">Blog</a></li><li class="nav-item"><a href="/feed/feed.xml">RSS</a></li> </ul> </div> </nav> <main class="tmpl-home"> <div class="content"> <header class="flow"> <h1 class="title"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 858.23 359.43" aria-labelledby="SiaTitleHeader" role="img"><title id="SiaTitleHeader">Sia Karamalegos</title><path fill="currentColor" d="M649.59,112.6q-6.6-4-17.6-5.4l-15.6-2a49.24,49.24,0,0,1-6.8-1.3,7.16,7.16,0,0,1-3.3-1.7,3,3,0,0,1-.9-2,3.75,3.75,0,0,1,.8-2.4,6,6,0,0,1,3.3-1.6,35.94,35.94,0,0,1,7.7-.6,122.06,122.06,0,0,1,17.6,1.1,86.29,86.29,0,0,1,12.6,2.7,50.44,50.44,0,0,1,8.6,3.4h1.2c.4-2.13.7-4.27.9-6.4s.3-4.13.3-6a104.27,104.27,0,0,0-.6-12.3,30.87,30.87,0,0,0-2.1-8.4,18.68,18.68,0,0,0-4.5-6.3,20,20,0,0,0-5.9-3.9,37.13,37.13,0,0,0-9.9-2.6,115.37,115.37,0,0,0-16-.9,114.06,114.06,0,0,0-23.7,2.2,53.4,53.4,0,0,0-17.3,6.6,29.21,29.21,0,0,0-10.5,10.9,31,31,0,0,0-3.5,14.9q0,9.6,3.1,16a22.19,22.19,0,0,0,10.4,10.1q7.3,3.7,19.9,5.7l14.6,2.2a20.87,20.87,0,0,1,7,1.8,4.7,4.7,0,0,1,2.6,2.9,8.42,8.42,0,0,1-.4,4.3q-2.8.19-6.4.3t-8,.1q-8,0-14-.5a84.87,84.87,0,0,1-10.7-1.5,86,86,0,0,1-9.2-2.5q-4.5-1.5-9.5-3.7h-1.2a43.81,43.81,0,0,0-1.7,7.7,71.32,71.32,0,0,0-.5,8.9,48.64,48.64,0,0,0,1.5,13.2,20.69,20.69,0,0,0,4.7,8.6,24.13,24.13,0,0,0,4.6,3.5,32.75,32.75,0,0,0,7.5,3.1,75.85,75.85,0,0,0,12.2,2.3,159.24,159.24,0,0,0,18.5.9q21.2,0,32.6-4.6t15.9-12.7a36.62,36.62,0,0,0,4.5-18.1,35.66,35.66,0,0,0-3.1-15.5A24.53,24.53,0,0,0,649.59,112.6Z"></path><path fill="currentColor" d="M727.39,148.1q-.2-6.3-.2-13.1V73.4a12.2,12.2,0,0,0-2.9-7.8q-2.89-3.6-11.8-5.7t-26.7-2.1h-2.1c-.87,0-1.77,0-2.7.1l-2.9.2c-1,.07-2,.17-2.9.3s-1.8.27-2.6.4a72.27,72.27,0,0,0-1.6,7.8,72.75,72.75,0,0,0-.6,10.4q0,12.19,2.8,19.8t6,7.6a2.11,2.11,0,0,0,.7-.1l.6-.2a1,1,0,0,0,.5-.4,6.23,6.23,0,0,0,.4-.7h1.2v43.4q0,12.79,6.4,19.2t21,6.4a99.49,99.49,0,0,0,10.7-.5q4.5-.51,9.9-1.5a68.69,68.69,0,0,1-2.2-10.1A105.43,105.43,0,0,1,727.39,148.1Z"></path><path fill="currentColor" d="M683,43.2q8.81,3.4,21.6,3.4c1.73,0,3.6-.07,5.6-.2s4-.37,6-.7,4-.73,6.1-1.2,4-1,5.9-1.5V27.4q0-9-8.7-12.4t-21.7-3.4c-1.73,0-3.6,0-5.6.1s-4,.2-6,.4-4,.43-6.1.7-4,.53-5.9.8V30.8Q674.19,39.8,683,43.2Z"></path><path fill="currentColor" d="M855.09,133.9a17.63,17.63,0,0,0-.7-3.9h-1.2a16.46,16.46,0,0,1-2.5,1.6,6.57,6.57,0,0,1-3.1.8h-.8V100a32.24,32.24,0,0,0-4.2-15.8,47.68,47.68,0,0,0-11.4-13.6,57.18,57.18,0,0,0-36.6-13,219.63,219.63,0,0,0-22.5.9q-8.31.9-13,3.1a28.11,28.11,0,0,0-8.1,5.6,15.29,15.29,0,0,0-4.2,7.8,50,50,0,0,0-1,10.6q0,4,.3,7.3a53.5,53.5,0,0,0,1.1,6.9h1.2q6-2,11.8-3.3a115.25,115.25,0,0,1,11.7-2,100.17,100.17,0,0,1,11.9-.7,83.59,83.59,0,0,1,8.4.4c2.66.27,5.26.63,7.8,1.1a48,48,0,0,1,7.2,1.9,26.78,26.78,0,0,0-1.5,3.7,29.18,29.18,0,0,0-1.1,4.4c-.18,1-.32,2.09-.44,3.15-.61-.25-1.22-.51-1.86-.75a63,63,0,0,0-11.7-3,93.73,93.73,0,0,0-15.2-1.1,29.93,29.93,0,0,0-12.8,2.9,41,41,0,0,0-19.2,18.8,28,28,0,0,0-3,12.5v1.8a35.34,35.34,0,0,0,3.9,16.9,27.7,27.7,0,0,0,11.3,11.4Q763,172,773.39,172a38.25,38.25,0,0,0,14.8-2.6,28.76,28.76,0,0,0,10.3-7.1,32.73,32.73,0,0,0,6.3-10.1h1.33c.15.37.3.74.47,1.1a33.47,33.47,0,0,0,6.8,9.9,32.13,32.13,0,0,0,9.1,6.5,22.72,22.72,0,0,0,9.7,2.3,27.49,27.49,0,0,0,8.9-1.4,17.89,17.89,0,0,0,7.3-4.8q3-3,5-9.7a56.09,56.09,0,0,0,2-15.9A61.35,61.35,0,0,0,855.09,133.9Zm-58.3,2.6a54.67,54.67,0,0,1-7.8.5c-2.4,0-4-.37-4.8-1.1s-1.2-2.1-1.2-4.1v-.4a20.23,20.23,0,0,1,.2-3,20,20,0,0,1,.6-2.8,32.75,32.75,0,0,1,4.4-.5c1.46-.07,3-.1,4.6-.1a72.62,72.62,0,0,1,7.5.4c1.22.12,2.46.29,3.7.47v8.51l-.5.22A27.34,27.34,0,0,1,796.79,136.5Z"></path><path fill="currentColor" d="M73.6,293.5Q66.88,286,60.72,277.91q-5.16-6.78-9.8-13.83c1.14-.85,2.28-1.73,3.4-2.66a74.81,74.81,0,0,0,9-9,101.16,101.16,0,0,0,8.24-11.12A138.72,138.72,0,0,0,79,228.22c.42-.85.75-1.54,1-2.08a3.76,3.76,0,0,0,.32-1.27,3.1,3.1,0,0,0-.4-1.53,3.43,3.43,0,0,0-1.6-1.27,8.75,8.75,0,0,0-3.6-.57h-1.6C71,226,68.8,230.14,66.56,234a101.18,101.18,0,0,1-7,10.47,99.65,99.65,0,0,1-7.44,8.72q-3,3-6.24,5.69a66.49,66.49,0,0,1-6.64,4.8,61.81,61.81,0,0,1-7.12,3.83,74.73,74.73,0,0,1-7.52,3l-.64-.3V197.83a17.73,17.73,0,0,0-1-6.57,8.94,8.94,0,0,0-2.72-3.84,5.66,5.66,0,0,0-3.44-1.28,5.37,5.37,0,0,0-.8.08l-.88.16c-.27.06-.56.14-.88.24a29.47,29.47,0,0,1,1.44,5.76,74.36,74.36,0,0,1,.32,8.16V303.75a2.87,2.87,0,0,0,.88,2.24,5,5,0,0,0,2.32,1.12,15,15,0,0,0,3.2.31H24V276.49a80,80,0,0,0,9.84-3,66.67,66.67,0,0,0,10.64-5.12h0l.95.16c1,1.6,2,3.29,3,5s2.27,3.63,3.6,5.6,2.85,4.14,4.56,6.49c1.17,1.59,2.42,3.2,3.76,4.79s2.66,3.18,4,4.72,2.69,3.07,4.08,4.57,2.77,2.93,4.16,4.32a12.66,12.66,0,0,0,5.2,3.27,22.78,22.78,0,0,0,6.8.88,6.26,6.26,0,0,0,1.12-.08l1-.15a3.52,3.52,0,0,0,.88-.24A197.31,197.31,0,0,1,73.6,293.5Z"></path><path fill="currentColor" d="M165.76,299.75a14.64,14.64,0,0,1-3.84.47,10.14,10.14,0,0,1-2.16-.23,8.87,8.87,0,0,1-2-.73,31.93,31.93,0,0,1-.64-4.15c-.11-1.28-.16-2.78-.16-4.49V250.3a36,36,0,0,0-2-12.47,23.77,23.77,0,0,0-6-9.21,27,27,0,0,0-9.76-5.75,40.8,40.8,0,0,0-13.44-2,92,92,0,0,0-9.92.55,63.8,63.8,0,0,0-9.12,1.61q-4,1-5.44,2.47a5.45,5.45,0,0,0-1.36,2.17,9.26,9.26,0,0,0-.4,3,5.18,5.18,0,0,0,.16,1.29c.1.42.21.85.32,1.27h1a35.85,35.85,0,0,1,6.48-2.23,66.3,66.3,0,0,1,8.16-1.53,70.81,70.81,0,0,1,8.88-.55,60.64,60.64,0,0,1,9.84.71,28.67,28.67,0,0,1,7.44,2.25,15.78,15.78,0,0,1,5.28,3.92,38.39,38.39,0,0,1,1.36,7q.39,3.83.48,9.35c0,2.92.07,6.5.08,10.72q-1.12-.35-2.64-.72a79.12,79.12,0,0,0-9.44-1.6,101,101,0,0,0-11.44-.63,43.23,43.23,0,0,0-12.88,1.76,26.41,26.41,0,0,0-9.6,5.12,22.39,22.39,0,0,0-6,8,25,25,0,0,0-2.08,10.39V286a24,24,0,0,0,2.8,12,18.38,18.38,0,0,0,8.16,7.59,28.48,28.48,0,0,0,12.72,2.64,32.17,32.17,0,0,0,12.56-2.39,35.75,35.75,0,0,0,16.72-14.41H149a32.42,32.42,0,0,0,.78,7,15,15,0,0,0,2.4,5.53,9.5,9.5,0,0,0,4.16,3.19,15.49,15.49,0,0,0,5.92,1,8.09,8.09,0,0,0,3.2-.55,7.25,7.25,0,0,0,2.24-1.53,6.73,6.73,0,0,0,1.52-2.56,11.68,11.68,0,0,0,.56-3.83v-1.13h-1A17.36,17.36,0,0,1,165.76,299.75Zm-24.88-8.49a40.53,40.53,0,0,1-11.2,6.73,30.66,30.66,0,0,1-10.8,2.08q-7.84,0-11.92-3.53c-2.72-2.34-4.08-5.92-4.08-10.71v-.49A26.26,26.26,0,0,1,105.6,273a24,24,0,0,1,8.08-3.77,46.74,46.74,0,0,1,12.24-1.35q4.63,0,9.12.23t9,.73c1.65.17,3.31.42,5,.73v13.45A57.82,57.82,0,0,1,140.88,291.26Z"></path><path fill="currentColor" d="M228.64,222.3a6.25,6.25,0,0,0-3.36-1.51,30.13,30.13,0,0,0-6.4-.57A23.14,23.14,0,0,0,206,224.14a38.22,38.22,0,0,0-10.72,11,68.36,68.36,0,0,0-7.92,16.64h-1.12V233.18a17.71,17.71,0,0,0-1-6.56,8.93,8.93,0,0,0-2.72-3.83A5.61,5.61,0,0,0,179,221.5a5.37,5.37,0,0,0-.8.08l-.88.17a6.19,6.19,0,0,0-.88.24,29.13,29.13,0,0,1,1.44,5.76,74.1,74.1,0,0,1,.32,8.16v67.84a3.21,3.21,0,0,0,.48,1.83,3.11,3.11,0,0,0,1.36,1.13,7.33,7.33,0,0,0,2.08.55,18.13,18.13,0,0,0,2.48.16h1.6v-36a120.49,120.49,0,0,1,7.68-21.89q5.12-10.56,11.52-15.75a21.81,21.81,0,0,1,19.12-4.64,10.14,10.14,0,0,1,3.28,1.35h1a3.68,3.68,0,0,0,.48-1.12q.15-.63.24-1.2c0-.37.1-.77.16-1.19a11.13,11.13,0,0,0,.08-1.28,6.7,6.7,0,0,0-.24-1.92A3.48,3.48,0,0,0,228.64,222.3Z"></path><path fill="currentColor" d="M300.8,299.75a14.64,14.64,0,0,1-3.84.47,10.14,10.14,0,0,1-2.16-.23,8.87,8.87,0,0,1-2-.73,31.93,31.93,0,0,1-.64-4.15c-.11-1.28-.16-2.78-.16-4.49V250.3a36,36,0,0,0-2-12.47,23.77,23.77,0,0,0-6-9.21,27,27,0,0,0-9.76-5.75,40.8,40.8,0,0,0-13.44-2,92,92,0,0,0-9.92.55,63.8,63.8,0,0,0-9.12,1.61q-4,1-5.44,2.47a5.45,5.45,0,0,0-1.36,2.17,9.26,9.26,0,0,0-.4,3,5.18,5.18,0,0,0,.16,1.29c.1.42.21.85.32,1.27h1a35.85,35.85,0,0,1,6.48-2.23,66.3,66.3,0,0,1,8.16-1.53,70.81,70.81,0,0,1,8.88-.55,60.64,60.64,0,0,1,9.84.71,28.67,28.67,0,0,1,7.44,2.25,15.78,15.78,0,0,1,5.28,3.92,38.39,38.39,0,0,1,1.36,7q.39,3.83.48,9.35c0,2.92.06,6.5.07,10.72-.74-.23-1.62-.47-2.63-.72a79.12,79.12,0,0,0-9.44-1.6,101,101,0,0,0-11.44-.63,43.23,43.23,0,0,0-12.88,1.76,26.41,26.41,0,0,0-9.6,5.12,22.39,22.39,0,0,0-6,8,25,25,0,0,0-2.08,10.39V286a24,24,0,0,0,2.8,12,18.38,18.38,0,0,0,8.16,7.59,28.48,28.48,0,0,0,12.72,2.64,32.17,32.17,0,0,0,12.56-2.39,35.75,35.75,0,0,0,16.72-14.41H284a32.42,32.42,0,0,0,.78,7,15,15,0,0,0,2.4,5.53,9.5,9.5,0,0,0,4.16,3.19,15.49,15.49,0,0,0,5.92,1,8.09,8.09,0,0,0,3.2-.55,7.25,7.25,0,0,0,2.24-1.53,6.73,6.73,0,0,0,1.52-2.56,11.68,11.68,0,0,0,.56-3.83v-1.13h-1A17.36,17.36,0,0,1,300.8,299.75Zm-24.88-8.49a40.53,40.53,0,0,1-11.2,6.73,30.66,30.66,0,0,1-10.8,2.08q-7.84,0-11.92-3.53c-2.72-2.34-4.08-5.92-4.08-10.71v-.49A26.26,26.26,0,0,1,240.64,273a24,24,0,0,1,8.08-3.77A46.74,46.74,0,0,1,261,267.91q4.64,0,9.12.23t9,.73c1.65.17,3.3.42,5,.73v13.45A57.82,57.82,0,0,1,275.92,291.26Z"></path><path fill="currentColor" d="M417.28,286.79V243.58a26.52,26.52,0,0,0-1.52-9.12,22.22,22.22,0,0,0-4.24-7.2,19.34,19.34,0,0,0-6.48-4.72,20,20,0,0,0-8.24-1.67,21.17,21.17,0,0,0-10.16,2.63,32.38,32.38,0,0,0-9,7.45,53,53,0,0,0-7.36,11.19h-1a26.36,26.36,0,0,0-1.48-8.39,20.49,20.49,0,0,0-4.24-7,18.39,18.39,0,0,0-6.48-4.41,21.89,21.89,0,0,0-8.24-1.51,21.17,21.17,0,0,0-10.16,2.63,32.38,32.38,0,0,0-9,7.45,53,53,0,0,0-7.36,11.19h-1v-9a18.62,18.62,0,0,0-.64-5.19,12,12,0,0,0-1.68-3.61,7.57,7.57,0,0,0-2.32-2.16,5.32,5.32,0,0,0-2.56-.72h-.64a2.74,2.74,0,0,0-.64.08l-.64.17a2.62,2.62,0,0,0-.64.24,29.13,29.13,0,0,1,1.44,5.76,74.1,74.1,0,0,1,.32,8.16v67.84a3.21,3.21,0,0,0,.48,1.83,3.11,3.11,0,0,0,1.36,1.13,7.33,7.33,0,0,0,2.08.55,18.13,18.13,0,0,0,2.48.16h1.6V255a114.45,114.45,0,0,1,9.2-15q5-6.65,9.36-8.88a18,18,0,0,1,8.32-2.24,14.23,14.23,0,0,1,7.2,1.59,11.75,11.75,0,0,1,4.4,4.8,30.12,30.12,0,0,1,2.64,8c-.22,4.16-.4,7.87-.56,11.12s-.3,6.24-.4,9-.19,5.34-.24,7.84-.11,5.07-.16,7.69-.08,5.46-.08,8.55a66.42,66.42,0,0,0,.88,12.57c.58,2.82,1.33,4.72,2.24,5.68a4.05,4.05,0,0,0,3,1.44,4.79,4.79,0,0,0,.88-.08l.72-.16a3.67,3.67,0,0,0,.64-.25v-52a107.32,107.32,0,0,1,9.12-14.53q5.12-6.57,9.36-8.89a17.71,17.71,0,0,1,8.56-2.31q6.24,0,9.36,3.35t4.56,11.53c-.22,4.16-.4,7.83-.56,11s-.3,6.13-.4,8.79-.19,5.23-.24,7.68-.08,5-.08,7.61v8.55A52.58,52.58,0,0,0,410.08,300c.74,2.82,1.7,4.69,2.88,5.59a5.72,5.72,0,0,0,3.52,1.37,8.59,8.59,0,0,0,1.28-.08l.8-.16a1.91,1.91,0,0,1,.48-.09A66.44,66.44,0,0,1,417.6,297C417.38,293.91,417.28,290.52,417.28,286.79Z"></path><path fill="currentColor" d="M504.63,299.75a14.53,14.53,0,0,1-3.84.47,10.28,10.28,0,0,1-2.16-.23,9.24,9.24,0,0,1-2-.73,33.74,33.74,0,0,1-.64-4.15c-.1-1.28-.16-2.78-.16-4.49V250.3a35.81,35.81,0,0,0-2-12.47,23.55,23.55,0,0,0-6-9.21,26.81,26.81,0,0,0-9.76-5.75,40.8,40.8,0,0,0-13.44-2,92.28,92.28,0,0,0-9.92.55,64.31,64.31,0,0,0-9.12,1.61c-2.66.69-4.48,1.51-5.44,2.47a5.56,5.56,0,0,0-1.36,2.17,9.58,9.58,0,0,0-.39,3,5.68,5.68,0,0,0,.15,1.29l.33,1.27h.95a36.4,36.4,0,0,1,6.48-2.23,67,67,0,0,1,8.16-1.53,71,71,0,0,1,8.88-.55,60.47,60.47,0,0,1,9.84.71,28.43,28.43,0,0,1,7.44,2.25,15.72,15.72,0,0,1,5.29,3.92,39.25,39.25,0,0,1,1.36,7q.39,3.83.47,9.35c.05,2.92.07,6.5.08,10.72-.75-.23-1.62-.47-2.63-.72a79,79,0,0,0-9.45-1.6,100.83,100.83,0,0,0-11.44-.63,43.17,43.17,0,0,0-12.87,1.76,26.54,26.54,0,0,0-9.61,5.12,22.62,22.62,0,0,0-6,8,25.2,25.2,0,0,0-2.08,10.39V286a24.14,24.14,0,0,0,2.8,12,18.48,18.48,0,0,0,8.16,7.59,28.56,28.56,0,0,0,12.73,2.64A32.08,32.08,0,0,0,470,305.83a35.62,35.62,0,0,0,16.72-14.41h1.14a33.71,33.71,0,0,0,.78,7A15.15,15.15,0,0,0,491,304a9.5,9.5,0,0,0,4.16,3.19,15.49,15.49,0,0,0,5.92,1,8,8,0,0,0,3.19-.55,7,7,0,0,0,2.24-1.53,6.49,6.49,0,0,0,1.52-2.56,11.42,11.42,0,0,0,.56-3.83v-1.13h-1A16.77,16.77,0,0,1,504.63,299.75Zm-24.88-8.49a40.38,40.38,0,0,1-11.2,6.73,30.62,30.62,0,0,1-10.8,2.08q-7.83,0-11.92-3.53c-2.72-2.34-4.08-5.92-4.08-10.71v-.49a27.78,27.78,0,0,1,.8-7.12,28.82,28.82,0,0,1,1.92-5.19,24.13,24.13,0,0,1,8.08-3.77,46.84,46.84,0,0,1,12.24-1.35q4.65,0,9.13.23t9,.73c1.65.17,3.3.42,4.95.73v13.45A57.29,57.29,0,0,1,479.75,291.26Z"></path><path fill="currentColor" d="M549.75,296.54h-1c-.64.54-1.3,1-2,1.53a11.15,11.15,0,0,1-2.24,1.19,12.73,12.73,0,0,1-2.64.73,20.73,20.73,0,0,1-3.2.23,15.54,15.54,0,0,1-3.92-.47,7.73,7.73,0,0,1-3.12-1.61,14.94,14.94,0,0,1-2.08-5.76,64.07,64.07,0,0,1-.48-9V196.71a22.29,22.29,0,0,0-.8-6.57,7.7,7.7,0,0,0-2.4-3.84,6.2,6.2,0,0,0-4-1.27h-.48a1.61,1.61,0,0,0-.56.08,1.59,1.59,0,0,1-.48.07,2.59,2.59,0,0,0-.56.08,1.2,1.2,0,0,0-.48.24,28.11,28.11,0,0,1,1.44,5.76,71.88,71.88,0,0,1,.32,8.16V287a42,42,0,0,0,.88,9,17.61,17.61,0,0,0,2.88,6.63,12.84,12.84,0,0,0,5.28,4.17,20.11,20.11,0,0,0,8.08,1.43,27.78,27.78,0,0,0,2.88-.15,19.94,19.94,0,0,0,2.72-.49,9.8,9.8,0,0,0,2.32-.87,7.67,7.67,0,0,0,1.84-1.37,6.39,6.39,0,0,0,1.68-2.47,11.36,11.36,0,0,0,.4-3.45,13.73,13.73,0,0,0-.08-1.67A5.61,5.61,0,0,0,549.75,296.54Z"></path><path fill="currentColor" d="M612.63,224.71q-6.55-3.86-16.48-3.84a39.52,39.52,0,0,0-15,2.88,35.24,35.24,0,0,0-12.64,8.79,42,42,0,0,0-8.72,15.21q-3.2,9.27-3.2,22.24v2.88a38,38,0,0,0,3,15.59,30,30,0,0,0,8.24,11A35.33,35.33,0,0,0,580,306.07a49.19,49.19,0,0,0,14.72,2.15,61.26,61.26,0,0,0,11.76-1,40,40,0,0,0,9.44-3,23.3,23.3,0,0,0,6.64-4.47,9.29,9.29,0,0,0,2-3,11.5,11.5,0,0,0,.72-4.33c0-.85,0-1.54-.08-2.08A5.52,5.52,0,0,0,625,289h-1a41.08,41.08,0,0,1-8.24,6.47,32.23,32.23,0,0,1-9.12,3.61,51.16,51.16,0,0,1-11.28,1.11,48.77,48.77,0,0,1-13.92-1.68,31.06,31.06,0,0,1-10.56-5.67,23.75,23.75,0,0,1-4.72-8.49,34.88,34.88,0,0,1-1.52-10.55v-2.72c0-1.36,0-2.67.09-4l.87-.53a7.29,7.29,0,0,0,2.08.8,10.84,10.84,0,0,0,2.72.33h49.44a4,4,0,0,0,3.68-2.64,21.09,21.09,0,0,0,1.76-6.57,65,65,0,0,0,.48-7.92V250a32.94,32.94,0,0,0-3.28-14.81A24.52,24.52,0,0,0,612.63,224.71Zm4.8,31c-.21,1.65-.48,3.28-.8,4.87H565.27q1.69-13.29,8-21.2,8.64-10.8,22.72-10.8a49.43,49.43,0,0,1,8.24.57,23.73,23.73,0,0,1,6.32,2A22.57,22.57,0,0,1,616,239a31.17,31.17,0,0,1,1.76,11.51A41.42,41.42,0,0,1,617.43,255.67Z"></path><path fill="currentColor" d="M671.51,220.07a46.4,46.4,0,0,0-19.44,3.76,29.33,29.33,0,0,0-12.72,10.55,28.26,28.26,0,0,0-4.48,15.92V251a30,30,0,0,0,4.24,16.23A26.85,26.85,0,0,0,651,277.5a35.66,35.66,0,0,0,10,2.88v.8a15,15,0,0,0-2.88,3.61,23.51,23.51,0,0,0-2.08,4.47,14.5,14.5,0,0,0-.8,4.73,13.73,13.73,0,0,0,1.52,6l.08.13v1.06a27.64,27.64,0,0,0-12.4,3.77,25,25,0,0,0-8.72,8.47,21.48,21.48,0,0,0-3.2,11.45v.63a17.42,17.42,0,0,0,3.36,10,24.42,24.42,0,0,0,9.84,8q6.48,3.12,16.08,3.12h7.52q13,0,20.88-2.32t12.08-6.08a19,19,0,0,0,5.6-8.23,28.68,28.68,0,0,0,1.44-8.81v-.47a19.3,19.3,0,0,0-2.4-9.37,19.77,19.77,0,0,0-7.2-7.35c-3.2-2-7.31-3.12-12.32-3.45l-16.16-1.12c-3-.21-5.07-.8-6.24-1.75a5.09,5.09,0,0,1-1.76-4.17,19.32,19.32,0,0,1,1.92-7.92,16.3,16.3,0,0,1,3.23-4.72h.45a41,41,0,0,0,17.28-3.53,29.41,29.41,0,0,0,12.16-9.92,25.31,25.31,0,0,0,4.48-14.88v-.63q0-8.32-3.6-14a24.76,24.76,0,0,0-8.72-8.57v-1c4.15.4,7.52.79,10.08,1.18a46.43,46.43,0,0,0,6.88.64,2.73,2.73,0,0,0,2.8-1.76,11.39,11.39,0,0,0,.72-4.31v-1.61q-11-1.11-20.16-1.75T671.51,220.07Zm-1.44,87.68,15.84.79q8,.33,11.68,4.8a15.5,15.5,0,0,1,3.68,10.08v.33a27.68,27.68,0,0,1-.56,5.36,13.55,13.55,0,0,1-1.68,4.56,54.48,54.48,0,0,1-12.24,4.24,77.6,77.6,0,0,1-15.12,1.2h-7.84a37,37,0,0,1-12.64-1.93,18.46,18.46,0,0,1-8-5.11,10.68,10.68,0,0,1-2.72-7v-.81a17.1,17.1,0,0,1,2.4-9,18.86,18.86,0,0,1,7.44-6.72,34.54,34.54,0,0,1,11-3.44l.23.16A17.25,17.25,0,0,0,670.07,307.75ZM693.19,243a25.72,25.72,0,0,1,1.52,7.92v.63q0,10.72-7.2,16.09t-19,5.36a51.3,51.3,0,0,1-9.92-.89,50.63,50.63,0,0,1-9-2.64,23.73,23.73,0,0,1-5.36-9.12,28.27,28.27,0,0,1-1.36-7.67v-.64q0-12.33,7.52-18.4t20.8-6.09c2.3,0,4.44,0,6.47.07a26.93,26.93,0,0,1,9.85,6.34A25.15,25.15,0,0,1,693.19,243Z"></path><path fill="currentColor" d="M775.75,234.46a34.85,34.85,0,0,0-11.44-10.08,29.73,29.73,0,0,0-14.24-3.51,30.56,30.56,0,0,0-18.24,5.84q-8.16,5.83-13,16.79t-4.8,26.17V271a46.63,46.63,0,0,0,2.48,15.76,31.61,31.61,0,0,0,7.2,11.75,30.72,30.72,0,0,0,11.36,7.29,42.56,42.56,0,0,0,15,2.47q11,0,19.12-4.39A30.15,30.15,0,0,0,781.67,291q4.4-8.49,4.4-20.49v-1.28a65.33,65.33,0,0,0-2.72-19.35A50.77,50.77,0,0,0,775.75,234.46Zm2.32,36.16a36.65,36.65,0,0,1-3,15.21,23.49,23.49,0,0,1-9.28,10.55q-6.24,3.86-16.16,3.84a55,55,0,0,1-7.28-.47,56.36,56.36,0,0,1-7.6-1.61,25.58,25.58,0,0,1-10-12.64,44.68,44.68,0,0,1-2.64-14.88v-.95a62.94,62.94,0,0,1,3.12-20.17,34.34,34.34,0,0,1,9.44-15q6.32-5.67,15.92-5.67c1.92,0,3.78.08,5.6.24a24.67,24.67,0,0,1,5.28,1,33.46,33.46,0,0,1,12.72,16.08,65,65,0,0,1,3.92,23.45Z"></path><path fill="currentColor" d="M856,274.87a20.47,20.47,0,0,0-6.56-7,26.94,26.94,0,0,0-10.88-4.08L823.83,261q-8-1.44-11.84-3.69c-2.56-1.49-4.22-3.22-5-5.2a17.14,17.14,0,0,1-1.12-6.15A13.59,13.59,0,0,1,809,237.5a23,23,0,0,1,8.56-6.55,29.32,29.32,0,0,1,12.64-2.57,61.44,61.44,0,0,1,9,.57,34.08,34.08,0,0,1,7,1.76,50.69,50.69,0,0,1,6.72,3.12h1a4.37,4.37,0,0,0,.4-1.45c.05-.53.08-1,.08-1.43a15,15,0,0,0-.16-2.16,7.54,7.54,0,0,0-.56-1.92,6,6,0,0,0-1.2-1.69,9.35,9.35,0,0,0-3.6-2.15,39.15,39.15,0,0,0-6.8-1.85,54.7,54.7,0,0,0-10.08-.8,43.3,43.3,0,0,0-14.48,2.24,33.71,33.71,0,0,0-10.72,6,25.47,25.47,0,0,0-6.64,8.49,21.86,21.86,0,0,0-2.24,9.51,21.36,21.36,0,0,0,2.16,9.84,17,17,0,0,0,7.12,7,44.28,44.28,0,0,0,13.28,4.41l14.88,2.88a26.74,26.74,0,0,1,8.48,2.88,15,15,0,0,1,5.2,4.71,15.72,15.72,0,0,1,2.32,6.8q-1.61,8.16-8.08,11.61t-17.84,3.43q-4.8,0-8.72-.39a37.1,37.1,0,0,1-7.28-1.45,33.71,33.71,0,0,1-6.64-2.88,46.53,46.53,0,0,1-6.8-4.71h-1a2.88,2.88,0,0,0-.24,1,11.89,11.89,0,0,0-.08,1.59,20.06,20.06,0,0,0,.4,3.84,6.6,6.6,0,0,0,1.84,3.53,16.48,16.48,0,0,0,4.64,3.12,41.74,41.74,0,0,0,6.64,2.39,51.67,51.67,0,0,0,8.24,1.53,87.06,87.06,0,0,0,9.28.47,45.89,45.89,0,0,0,17.36-3,25,25,0,0,0,11.2-8.39,21.61,21.61,0,0,0,3.92-13A18.47,18.47,0,0,0,856,274.87Z"></path></svg> </h1> <p class="lead">Web developer, international conference speaker, workshop instructor, and community organizer. I like to make the web fast.</p> <div class="social a-reset"> <a href="https://front-end.social/@sia" target="_blank" rel="me noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-labelledby="MastodonTitleHeader" role="img"><title id="MastodonTitleHeader">Mastodon</title><path fill="currentColor" d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg></a> <a href="https://github.com/siakaramalegos/" target="_blank" rel="noopener noreferrer me"><svg width="32" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" aria-labelledby="GithubTitleHeader" role="img"><title id="GithubTitleHeader">Github</title><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a> <a href="https://dev.to/thegreengreek" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-labelledby="DevTitleHeader" role="img" width="32"><title id="DevTitleHeader">Dev.to</title><path fill="currentColor" d="M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"></path></svg></a> <a href="https://www.linkedin.com/in/karamalegos/" target="_blank" rel="noopener noreferrer"><svg width="32" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-labelledby="LinkedInTitleHeader" role="img"><title id="LinkedInTitleHeader">LinkedIn</title><path fill="currentColor" d="M100.3 480H7.4V180.9h92.9V480zM53.8 140.1C24.1 140.1 0 115.5 0 85.8 0 56.1 24.1 32 53.8 32c29.7 0 53.8 24.1 53.8 53.8 0 29.7-24.1 54.3-53.8 54.3zM448 480h-92.7V334.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V480h-92.8V180.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V480z"></path></svg></a> <a href="https://medium.com/clio-calliope" target="_blank" rel="noopener noreferrer"><svg width="32" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-labelledby="MediumTitleHeader" role="img"><title id="MediumTitleHeader">Medium</title><path fill="currentColor" d="M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"></path></svg></a> <a href="https://stackoverflow.com/users/5049215/sia?tab=profile" target="_blank" rel="noopener noreferrer"><svg width="32" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" aria-labelledby="SOTitleHeader" role="img"> <title id="SOTitleHeader">Stack Overflow</title> <path fill="currentColor" d="M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z"></path> </svg></a> <a href="https://ko-fi.com/siacodes" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="38" style="margin-bottom:2px" viewBox="0 0 644.84 410.869" aria-labelledby="KofiTitleHeader"><title id="KofiTitleHeader">Kofi</title><path fill="currentColor" d="M510.3 230.591c-24.932 3.115-45.188.778-45.188.778V78.704h47.525s52.981 14.798 52.981 70.88c0 51.407-26.489 71.66-55.317 81.007m131.328-107.174C620.844 13.641 511.081 0 511.081 0H19.414C3.177 0 1.18 21.435 1.18 21.435s-2.19 196.787-.6 317.64c4.404 65.116 69.495 71.794 69.495 71.794s222.127-.65 321.5-1.299c65.513-11.476 72.093-68.944 71.444-100.375 116.909 6.495 199.394-76 178.611-185.778"></path><path d="M228.354 325.232c5.077 2.556 8.32-.62 8.32-.62s74.292-67.807 107.76-106.857c29.768-34.934 31.709-93.804-19.413-115.8-51.12-21.996-93.181 25.877-93.181 25.877-36.475-40.116-91.678-38.085-117.211-10.936-25.532 27.15-16.616 73.747 2.431 99.68 17.88 24.344 96.472 94.392 108.384 106.239 0 0 .868.908 2.91 2.417" fill="var(--white)"></path></svg></a> </div> </header> <script> (async function () { // Polyfill for older browsers if (CSS["paintWorklet"] === undefined) { await import("https://unpkg.com/css-paint-polyfill"); } // Looking for the source of the Paint Worklet? // ~> Go check out https://github.com/bramus/css-houdini-circles CSS.paintWorklet.addModule('https://unpkg.com/css-houdini-circles/dist/circles.js'); })(); </script> <section id="upcoming-talks" class="bg-secondary circles"> <div class="talks flow" style="padding: 0 16px"> <h2>Upcoming Talks and Workshops</h2> <div id="upcomingEvents" class="card-list"> <article class="event-item"> <h3><a href="https://11tymeetup.dev/events/ep-lucky-13-adding-social-content-and-webmentions/">THE Eleventy Meetup</a></h3> <div class="event-location"> <img src="/img/map-marker-alt.svg" width="12" height="16" alt="">Online </div> <details> <summary><span class="event-date">14 Apr 2023</span> Webmentions + Eleventy</summary> <p> Webmentions are an exciting standard which help enable the IndieWeb. We can own our own content, hosted on our own domains, without sacrificing social connection and replies with other people! In this talk, I discuss what webmentions are and how to implement them. The code is based on an Eleventy site, but the concepts should be applicable to any site. </p> </details> </article> <article class="event-item"> <h3><a href="https://greece.cityjsconf.org/">CityJS Athens</a></h3> <div class="event-location"> <img src="/img/map-marker-alt.svg" width="12" height="16" alt="">Athens, GR </div> <details> <summary><span class="event-date">29 May 2023</span> To be determined...</summary> <p> Stay tuned for the details! </p> </details> </article> </div> <p>Learn more <a href="/speaking/">about my speaking</a>.</p> <p class="text-center"> <a class="button button-default" href="/contact/?subject=Speaking inquiry from sia.codes">Book me to speak</a> </p> </div> </section> <section class="flow"> <h2>Select Writing</h2> <p>All posts can be found on <a href="/posts/">the blog page</a>.</p> <div reversed="" class="postlist"> <article class="postlist-item"> <div class="postlist-image"> <img src="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/ecommerce_v5tosj.jpg" srcset="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/ecommerce_v5tosj.jpg 300w, https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_600/v1607719366/sia.codes/ecommerce_v5tosj.jpg 600w" sizes="(min-width: 1020px) 311px, (min-width: 680px) 48.75vw, calc(100vw - 20px)" loading="lazy" alt=""> </div> <p><time class="postlist-date" datetime="2022-05-16">16 May 2022</time></p> <h3 class="postlist-title a-reset"> <a href="/posts/serverless-ecommerce-store/">Building a Serverless E-commerce Store with Stripe, Netlify, &amp; 11ty</a> </h3> <p>Building the lowest-cost e-commerce solution with static site generation and serverless functions</p> <p> <a href="/tags/Jamstack/" class="post-tag">Jamstack</a> <a href="/tags/Eleventy/" class="post-tag">Eleventy</a> <a href="/tags/JavaScript/" class="post-tag">JavaScript</a> <a href="/tags/IndieWeb/" class="post-tag">IndieWeb</a> </p> </article> <article class="postlist-item"> <div class="postlist-image"> <img src="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/gustavo-campos-B87zMorEZRo-unsplash_ylwcwa.jpg" srcset="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/gustavo-campos-B87zMorEZRo-unsplash_ylwcwa.jpg 300w, https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_600/v1607719366/sia.codes/gustavo-campos-B87zMorEZRo-unsplash_ylwcwa.jpg 600w" sizes="(min-width: 1020px) 311px, (min-width: 680px) 48.75vw, calc(100vw - 20px)" loading="lazy" alt=""> </div> <p><time class="postlist-date" datetime="2021-08-04">04 Aug 2021</time></p> <h3 class="postlist-title a-reset"> <a href="/posts/survey-web-performance-tooling/">An Informal Survey of Web Performance Tooling in 2021</a> </h3> <p>What tools are web performance engineers using to measure site speed in 2021?</p> <p> <a href="/tags/WebPerf/" class="post-tag">WebPerf</a> <a href="/tags/Tools/" class="post-tag">Tools</a> <a href="/tags/Dev Tools/" class="post-tag">Dev Tools</a> </p> </article> <article class="postlist-item"> <div class="postlist-image"> <img src="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/raphael-schaller-D6uxeDSylxo-unsplash_hpbbnp.jpg" srcset="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/raphael-schaller-D6uxeDSylxo-unsplash_hpbbnp.jpg 300w, https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_600/v1607719366/sia.codes/raphael-schaller-D6uxeDSylxo-unsplash_hpbbnp.jpg 600w" sizes="(min-width: 1020px) 311px, (min-width: 680px) 48.75vw, calc(100vw - 20px)" loading="lazy" alt=""> </div> <p><time class="postlist-date" datetime="2021-08-02">02 Aug 2021, updated 21 Jan 2022</time></p> <h3 class="postlist-title a-reset"> <a href="/posts/lighthouse-treemap/">Explore JavaScript Dependencies With Lighthouse Treemap</a> </h3> <p>Discover all JavaScript downloaded for a site and used vs unused in a handy data visualization.</p> <p> <a href="/tags/WebPerf/" class="post-tag">WebPerf</a> <a href="/tags/Tools/" class="post-tag">Tools</a> <a href="/tags/Dev Tools/" class="post-tag">Dev Tools</a> </p> </article> <article class="postlist-item"> <div class="postlist-image"> <img src="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/buffalo-blocking-road-tim-wilson_mpq4nt.jpg" srcset="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/buffalo-blocking-road-tim-wilson_mpq4nt.jpg 300w, https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_600/v1607719366/sia.codes/buffalo-blocking-road-tim-wilson_mpq4nt.jpg 600w" sizes="(min-width: 1020px) 311px, (min-width: 680px) 48.75vw, calc(100vw - 20px)" loading="lazy" alt=""> </div> <p><time class="postlist-date" datetime="2021-07-13">13 Jul 2021, updated 23 Jul 2021</time></p> <h3 class="postlist-title a-reset"> <a href="/posts/render-blocking-resources/">How to Eliminate Render-Blocking Resources: a Deep Dive</a> </h3> <p>Is Lighthouse telling you to eliminate render-blocking resources? Learn what it means and how to fix it.</p> <p> <a href="/tags/WebPerf/" class="post-tag">WebPerf</a> <a href="/tags/JavaScript/" class="post-tag">JavaScript</a> <a href="/tags/Popular/" class="post-tag">Popular</a> </p> </article> <article class="postlist-item"> <div class="postlist-image"> <img src="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/mic-possum_owln9h.jpg" srcset="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/mic-possum_owln9h.jpg 300w, https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_600/v1607719366/sia.codes/mic-possum_owln9h.jpg 600w" sizes="(min-width: 1020px) 311px, (min-width: 680px) 48.75vw, calc(100vw - 20px)" loading="lazy" alt=""> </div> <p><time class="postlist-date" datetime="2021-05-24">24 May 2021</time></p> <h3 class="postlist-title a-reset"> <a href="/posts/itsiest-bitsiest-eleventy-tutorial/">Itsiest, Bitsiest Eleventy Tutorial</a> </h3> <p>Want to get started with Eleventy but feel overwhelmed? Try out this pared-down tutorial</p> <p> <a href="/tags/IndieWeb/" class="post-tag">IndieWeb</a> <a href="/tags/Eleventy/" class="post-tag">Eleventy</a> <a href="/tags/JavaScript/" class="post-tag">JavaScript</a> <a href="/tags/Jamstack/" class="post-tag">Jamstack</a> </p> </article> <article class="postlist-item"> <div class="postlist-image"> <img src="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/A_possum_and_a_movie_camera_1943_f4yflt.jpg" srcset="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/A_possum_and_a_movie_camera_1943_f4yflt.jpg 300w, https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_600/v1607719366/sia.codes/A_possum_and_a_movie_camera_1943_f4yflt.jpg 600w" sizes="(min-width: 1020px) 311px, (min-width: 680px) 48.75vw, calc(100vw - 20px)" loading="lazy" alt=""> </div> <p><time class="postlist-date" datetime="2020-12-11">11 Dec 2020, updated 16 Jul 2021</time></p> <h3 class="postlist-title a-reset"> <a href="/posts/eleventy-and-cloudinary-images/">Optimize Images in Eleventy Using Cloudinary</a> </h3> <p>Set up responsive images in Eleventy using Cloudinary and Eleventy shortcodes</p> <p> <a href="/tags/Eleventy/" class="post-tag">Eleventy</a> <a href="/tags/Images/" class="post-tag">Images</a> <a href="/tags/WebPerf/" class="post-tag">WebPerf</a> <a href="/tags/Jamstack/" class="post-tag">Jamstack</a> </p> </article> <article class="postlist-item"> <div class="postlist-image"> <img src="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/possum_efpwzp.jpg" srcset="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/possum_efpwzp.jpg 300w, https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_600/v1607719366/sia.codes/possum_efpwzp.jpg 600w" sizes="(min-width: 1020px) 311px, (min-width: 680px) 48.75vw, calc(100vw - 20px)" loading="lazy" alt=""> </div> <p><time class="postlist-date" datetime="2020-05-15">15 May 2020</time></p> <h3 class="postlist-title a-reset"> <a href="/posts/architecting-data-in-eleventy/">Architecting data in Eleventy</a> </h3> <p>Setting and using data in the static site generator Eleventy</p> <p> <a href="/tags/IndieWeb/" class="post-tag">IndieWeb</a> <a href="/tags/Eleventy/" class="post-tag">Eleventy</a> <a href="/tags/JavaScript/" class="post-tag">JavaScript</a> <a href="/tags/Popular/" class="post-tag">Popular</a> <a href="/tags/Jamstack/" class="post-tag">Jamstack</a> </p> </article> <article class="postlist-item"> <div class="postlist-image"> <img src="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/hands-laptop_rdfolj.jpg" srcset="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/hands-laptop_rdfolj.jpg 300w, https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_600/v1607719366/sia.codes/hands-laptop_rdfolj.jpg 600w" sizes="(min-width: 1020px) 311px, (min-width: 680px) 48.75vw, calc(100vw - 20px)" loading="lazy" alt=""> </div> <p><time class="postlist-date" datetime="2019-11-22">22 Nov 2019, updated 26 May 2021</time></p> <h3 class="postlist-title a-reset"> <a href="/posts/webmentions-eleventy-in-depth/">An In-Depth Tutorial of Webmentions + Eleventy</a> </h3> <p>Add Webmentions to your Eleventy static site with this step-by-step tutorial.</p> <p> <a href="/tags/IndieWeb/" class="post-tag">IndieWeb</a> <a href="/tags/Eleventy/" class="post-tag">Eleventy</a> <a href="/tags/Jamstack/" class="post-tag">Jamstack</a> </p> </article> <article class="postlist-item"> <div class="postlist-image"> <img src="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/typewriter_keys_qgtruq.jpg" srcset="https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_300/v1607719366/sia.codes/typewriter_keys_qgtruq.jpg 300w, https://res.cloudinary.com/siacodes/image/upload/q_auto,f_auto,w_600/v1607719366/sia.codes/typewriter_keys_qgtruq.jpg 600w" sizes="(min-width: 1020px) 311px, (min-width: 680px) 48.75vw, calc(100vw - 20px)" loading="lazy" alt=""> </div> <p><time class="postlist-date" datetime="2019-02-06">06 Feb 2019, updated 18 Jan 2022</time></p> <h3 class="postlist-title a-reset"> <a href="/posts/making-google-fonts-faster/">Making Google Fonts Faster in 2022</a> </h3> <p>If you use Google Fonts, a few additional steps can lead to much faster load times.</p> <p> <a href="/tags/WebPerf/" class="post-tag">WebPerf</a> <a href="/tags/Fonts/" class="post-tag">Fonts</a> <a href="/tags/Popular/" class="post-tag">Popular</a> </p> </article> </div> <p><a href="/posts/">All posts</a></p> </section> </div> proven.lol/572f4f </main> <footer class="bg-dark a-reset"> <div class="content"> <form id="inform" action="https://buttondown.email/api/emails/embed-subscribe/sia.codes" method="post" target="popupwindow" onsubmit="window.open('https://buttondown.email/sia.codes', 'popupwindow')" class="embeddable-buttondown-form form"> <p class="text-center">Join my <strong>newsletter</strong> to be notified of new content and events! View previous issues in the <a href="/newsletter">archive</a> or subscribe to the <a href="https://buttondown.email/sia.codes/rss">RSS feed</a>.</p> <label for="bd-email">Enter your email <input type="email" name="email" id="bd-email"> </label> <input type="hidden" value="1" name="embed"> <button class="button button-default" type="submit">Subscribe</button> <p class="text-center"> <small><a href="https://buttondown.email" rel="noopener noreferrer" target="_blank">Powered by Buttondown.</a></small> </p> </form> <p class="footer-social-links"> <a href="https://front-end.social/@sia" target="_blank" rel="noopener noreferrer me"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-labelledby="MastodonTitleHeader" role="img"><title id="MastodonTitleHeader">Mastodon</title><path fill="currentColor" d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg></a> <a href="https://github.com/siakaramalegos/" target="_blank" rel="noopener noreferrer"><svg width="32" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" aria-labelledby="GithubTitle" role="img"><title id="GithubTitle">Github</title><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a> <a href="https://dev.to/thegreengreek" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-labelledby="DevTitle" role="img" width="32"><title id="DevTitle">Dev.to</title><path fill="currentColor" d="M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"></path></svg></a> <a href="https://www.linkedin.com/in/karamalegos/" target="_blank" rel="noopener noreferrer"><svg width="32" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-labelledby="LinkedInTitle" role="img"><title id="LinkedInTitle">LinkedIn</title><path fill="currentColor" d="M100.3 480H7.4V180.9h92.9V480zM53.8 140.1C24.1 140.1 0 115.5 0 85.8 0 56.1 24.1 32 53.8 32c29.7 0 53.8 24.1 53.8 53.8 0 29.7-24.1 54.3-53.8 54.3zM448 480h-92.7V334.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V480h-92.8V180.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V480z"></path></svg></a> <a href="https://medium.com/clio-calliope" target="_blank" rel="noopener noreferrer"><svg width="32" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-labelledby="MediumTitle" role="img"><title id="MediumTitle">Medium</title><path fill="currentColor" d="M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"></path></svg></a> <a href="https://stackoverflow.com/users/5049215/sia?tab=profile" target="_blank" rel="noopener noreferrer"><svg width="32" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" aria-labelledby="SOTitle" role="img"> <title id="SOTitle">Stack Overflow</title> <path fill="currentColor" d="M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z"></path> </svg></a> <a href="https://ko-fi.com/siacodes" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" style="margin-bottom:2px" width="38" viewBox="0 0 644.84 410.869" aria-labelledby="KofiTitle"><title id="KofiTitle">Kofi</title><path fill="currentColor" d="M510.3 230.591c-24.932 3.115-45.188.778-45.188.778V78.704h47.525s52.981 14.798 52.981 70.88c0 51.407-26.489 71.66-55.317 81.007m131.328-107.174C620.844 13.641 511.081 0 511.081 0H19.414C3.177 0 1.18 21.435 1.18 21.435s-2.19 196.787-.6 317.64c4.404 65.116 69.495 71.794 69.495 71.794s222.127-.65 321.5-1.299c65.513-11.476 72.093-68.944 71.444-100.375 116.909 6.495 199.394-76 178.611-185.778"></path><path d="M228.354 325.232c5.077 2.556 8.32-.62 8.32-.62s74.292-67.807 107.76-106.857c29.768-34.934 31.709-93.804-19.413-115.8-51.12-21.996-93.181 25.877-93.181 25.877-36.475-40.116-91.678-38.085-117.211-10.936-25.532 27.15-16.616 73.747 2.431 99.68 17.88 24.344 96.472 94.392 108.384 106.239 0 0 .868.908 2.91 2.417" fill="var(--grey-70)"></path></svg></a> </p> <p class="footer-copy">All content © Sia Karamalegos</p> </div> </footer> <script defer="" src="https://www.googletagmanager.com/gtag/js?id=G-VMTGZPWPWD"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); </script> <script type="module"> import{getCLS,getFCP,getFID,getLCP}from"https://unpkg.com/web-vitals?module";const HOSTNAME="sia.codes",getConfig=e=>{const t={measurement_version:"6",page_path:location.pathname};return e.startsWith("UA-")&&Object.assign(t,{transport_type:"beacon",custom_map:{dimension1:"measurement_version",dimension2:"client_id",dimension3:"segments",dimension4:"config",dimension5:"report_source",dimension6:"debug_target",dimension7:"metric_rating",metric1:"report_size"}}),e.startsWith("G-")&&location.hostname!==HOSTNAME&&(t.debug_mode=!0),["config",e,t]},thresholds={CLS:[.1,.25],FCP:[1800,3e3],FID:[100,300],LCP:[2500,4e3]};function getRating(e,t){return e>t[1]?"poor":e>t[0]?"ni":"good"}function getSelector(e,t=100){let n="";try{for(;e&&9!==e.nodeType;){const i=e.id?"#"+e.id:e.nodeName.toLowerCase()+(e.className&&e.className.length?"."+Array.from(e.classList.values()).join("."):"");if(n.length+i.length>t-1)return n||i;if(n=n?i+">"+n:i,e.id)break;e=e.parentNode}}catch(e){}return n}function getLargestLayoutShiftEntry(e){return e.reduce(((e,t)=>e&&e.value>t.value?e:t))}function getLargestLayoutShiftSource(e){return e.reduce(((e,t)=>e.node&&e.previousRect.width*e.previousRect.height>t.previousRect.width*t.previousRect.height?e:t))}function wasFIDBeforeDCL(e){const t=performance.getEntriesByType("navigation")[0];return t&&e.startTime<t.domContentLoadedEventStart}function getDebugInfo(e,t=[]){if(t.length){if("LCP"===e){const e=t[t.length-1];return{debug_target:getSelector(e.element),event_time:e.startTime}}if("FID"===e){const e=t[0];return{debug_target:getSelector(e.target),debug_event:e.name,debug_timing:wasFIDBeforeDCL(e)?"pre_dcl":"post_dcl",event_time:e.startTime}}if("CLS"===e){const e=getLargestLayoutShiftEntry(t);if(e&&e.sources&&e.sources.length){const t=getLargestLayoutShiftSource(e.sources);if(t)return{debug_target:getSelector(t.node),event_time:e.startTime}}}}return{debug_target:"(not set)"}}function handleMetric({name:e,value:t,delta:n,id:i,entries:r}){gtag("event",e,{value:Math.round("CLS"===e?1e3*n:n),event_category:"Web Vitals",event_label:i,metric_value:t,metric_delta:n,metric_rating:getRating(t,thresholds[e]),non_interaction:!0,...getDebugInfo(e,r)})}function measureWebVitals(){getCLS(handleMetric),getFCP(handleMetric),getFID(handleMetric),getLCP(handleMetric)}function initAnalytics(){location.hostname!==HOSTNAME&&(window.gtag=console.log),gtag("js",new Date),gtag(...getConfig("G-VMTGZPWPWD")),gtag(...getConfig("UA-59135521-1")),measureWebVitals()}initAnalytics(); </script> </body></html>